我有一個BizTalk解決方案可以調用將查詢和更新表的存儲過程。顯然,我每次在負載平衡的服務器上測試我的解決方案時遇到此錯誤。MSDTC事務管理器無法使用AmbientTransaction推送事務
適配器無法傳輸郵件將發送端口SQLAdapter_Sendport」與URL‘MSSQL:?//服務器// StoredProc’這將發送端口爲這個指定的重試間隔後會重新
詳細:System.Transactions.TransactionManagerCommunicationException:與基礎事務管理器通信失敗
System.Runtime.InteropServices.COMException:該MSDTC事務管理器無法推動交易到目的地事務管理器由於通信問題。可能的原因是:存在防火牆,並且它沒有MSDTC進程的例外情況,兩臺計算機無法通過其NetBIOS名稱找到彼此,或者沒有爲兩個事務管理器之一啓用對網絡事務的支持。從HRESULT
例外:0x8004D02A)
在System.Transactions.Oletx.ITransactionShim.Export(UInt32的whereaboutsSize,字節[]下落,的Int32 & cookieIndex,UInt32的& cookieSize,CoTaskMemHandle & cookieBuffer)
在System.Transactions的。 TransactionInterop.GetExportCookie(交易成交,字節[]下落)內部異常堆棧跟蹤的
- 完 -
我讀過一些文章,我應該設置DTC屬性BEL流。這些我已經在BizTalk和SQL Server中設置了。
另外,DTC必須在Windows防火牆中添加。
最後一點,如果在發送端口屬性useAmbientTransaction設置爲True我一直遇到上面所說的錯誤。
但如果我設置useAmbientTransaction爲False的消息在SQL成功。
我讀過一些文章,微軟不建議將useAmbientTransaction設置爲False,特別是如果Update和Delete涉及存儲過程。但我的解決方案使用存儲過程中的刪除和更新,這就是爲什麼我需要將它設置爲useAmbientTransaction爲True。但如果我這樣做,我一直遇到錯誤「MSDTC交易管理器無法推動交易到目的地...」
請建議任何可能的解決方案。
同一篇文章是要連接到配置部分的總是可用性組數據庫?附:如果你用biztalk標記你的問題,如果他們是BizTalk相關的問題,它會有所幫助。 – Dijkgraaf