我有一个BizTalk服务器和BizTalk通过WCF-SQL发送消息的SQL服务器。 BizTalk服务器已经调用了这个服务器一年以上没有问题。 我今天早上突然来不及(周五正在工作)。
调用WCF-SQL端点时得到的完整错误是:
A message sent to adapter "WCF-SQL" on send port "MyPort" with URI "mssql://mySQLServer" is suspended. Error details: System.Transactions.TransactionManagerCommunicationException: Communication with the underlying transaction manager has failed. ---> System.Runtime.InteropServices.COMException: The MSDTC transaction manager was unable to push the transaction to the destination transaction manager due to communication problems. Possible causes are: a firewall is present and it doesn't have an exception for the MSDTC process, the two machines cannot find each other by their NetBIOS names, or the support for network transactions is not enabled for one of the two transaction managers. (Exception from HRESULT: 0x8004D02A) at System.Transactions.Oletx.ITransactionShim.Export(UInt32 whereaboutsSize, Byte[] whereabouts, Int32& cookieIndex, UInt32& cookieSize, CoTaskMemHandle& cookieBuffer) at System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts)
我遵循以下线程的指示: https : //stackoverflow.com/questions/29414250/msdtc-on-server-server-is-unavailable
我已经运行msdtc -uninstall然后msdtc -install并重新启动服务几次。
我已经多次重启了服务器。
我可以使用Sql Server Management Studio连接到数据库
尝试从SQL服务器连接到Biztalk服务器时的DTCP导致(当DTCPing在BizTalk上运行时):
Problem:fail to invoke remote RPC method Error(0x6BA) at dtcping.cpp @303 -->RPC pinging exception -->1722(The RPC server is unavailable.) RPC test failed
当从Biztalk到SQL我得到这个(甚至认为DTCPing运行在另一端)
Please refer to following log file for details: C:\Temp\DTCPing\myserv.log Invoking RPC method on dbaditest RPC test is successful ++++++++++++RPC test completed+++++++++++++++ Please start PING from dbaditest to complete the test
两台服务器都没有运行防火墙
我完全没有办法尝试。
我可以确认其他服务器/计算机可以连接到SQL服务器。 所以我必须假设它是BizTalk服务器是问题。
我尝试从BizTalk服务器连接到networking上的另一个SQL服务器,并得到相同的错误。 我离开了我的手,重build我的开发环境 – ugg 🙁
我可以telnet到端口135从BizTalk到SQL Server,所以没有任何阻止它。
DTCTester导致:
tablename= #dtc24449 Creating Temp Table for Testing: #dtc24449 Warning: No Columns in Result Set From Executing: 'create table #dtc24449 (ival int)' Initializing DTC Beginning DTC Transaction Enlisting Connection in Transaction Error: SQLSTATE=25S12,Native error=-2147168242,msg='[Microsoft][ODBC SQL Server Driver]Distributed transaction error' Error: SQLSTATE=24000,Native error=0,msg=[Microsoft][ODBC SQL Server Driver]Invalid cursor state Typical Errors in DTC Output When a. Firewall Has Ports Closed -OR- b. Bad WINS/DNS entries -OR- c. Misconfigured network -OR- d. Misconfigured SQL Server machine that has multiple netcards. Aborting DTC Transaction Releasing DTC Interface Pointers Successfully Released pTransaction Pointer.
我向networking团队证实,在这些服务器或networking中的任何地方都没有防火墙或端口阻塞。
事实certificate,我们之前一周推出了Symantec Endpoint Protection。 我完全忘记了我刚刚离开周末的时候。
这是阻止DTCstream量,但奇怪,它只会阻止虚拟机的stream量,但从主机罚款。