2015-03-31 48 views
0

当出现所需事务的COM +对象尝试与Oracle数据库通信时,出现以下错误。MSDTC和COM +与基于Unix的服务器上的Oracle数据库出错

“以下是错误的文字...

与基础事务管理器通信失败 内部异常:。 的MSDTC事务管理器无法从源事务管理器的事务拉由于通信问题。可能的原因是:存在防火墙,并且它没有MSDTC进程的例外情况,两台计算机无法通过其NetBIOS名称找到彼此,或者没有为两个事务管理器之一启用对网络事务的支持。 (来自HRESULT的例外:0x8004D02B) “

<Transaction(TransactionOption.Required)> 

相同的代码适用于某些机器,而不适用于其他机器。

已尝试防火墙(根据谷歌搜索结果)。没有防火墙 已尝试删除和添加COM +组件。 试过的注册表清洁工...

任何输入是最受欢迎的。

感谢

回答

0

找到问题的根源。

这样做的目的是在调用堆栈中创建外部数据库访问(对sql服务器),并且SQL Server阻止了MDTC端口号。它现在修复了。

编辑:

当我说,这是固定的,因为它变成了它不是。

事实上,问题在于默认情况下MSDTC中的连接已被接受。要禁用它,只需添加enlist = false;在连接字符串中,它将自动停止将连接连接到MSDTC。

1

我会确认网络DTC访问启用:

enter image description here

相关问题