当具有所需事务的COM +对象尝试与Oracle数据库通信时,出现以下错误。
“以下是错误文本……。
与基础事务管理器的通信失败。内部异常:由于通信问题,MSDTC事务管理器无法从源事务管理器中提取事务。可能的原因是:存在防火墙,并且MSDTC进程没有例外;两台计算机无法通过其NetBIOS名称相互找到对方;或者未为两个事务管理器之一启用对网络事务的支持。(来自HRESULT的异常:0x8004D02B)“
<Transaction(TransactionOption.Required)>
相同的代码在某些计算机上有效,而在其他计算机上则无效。
尝试过防火墙(根据Google搜索结果)。没有防火墙尝试删除和添加COM +组件。尝试注册表清洁器...
任何输入都是最欢迎的。
谢谢
找到了问题的根本原因。
这与以下事实有关:在调用堆栈中进行了外部数据库访问(对sql服务器),并且SQL Server阻止了MDTC端口号。现在已修复。
编辑:
当我说它是固定的时,事实证明它不是固定的。
实际上,问题出在默认情况下,该连接与MSDTC中的连接有关。要禁用此功能,只需添加enlist = false即可;在连接字符串中,它将停止自动注册到MSDTC的连接。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句