OLE DB provider "SQLNCLI11" for linked server "dbLink01" was unable to begin a distributed transac
從網上搜集了以下幾個解決方案,但對於非同網段的分布式事務,還是解決不了:
我這邊報處錯誤的詳細信息是:
異常信息:The operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "dbLink01" was unable to begin a distributed transaction.
OLE DB provider "SQLNCLI11" for linked server "dbLink01" returned message "沒有活動事務。".
導致錯誤的應用程序或對象的名稱:.Net SqlClient Data Provider
引發當前異常的方法:
異常相關幫助:
堆棧信息:
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
在 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout)
在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
1、 檢查本地機器與目標機器的MSDTC(Distributed Transaction Coordinator)服務是否已經啟用,具體位置如下圖:
2、MSDTC設置
打開“管理工具――組件服務”,以此打開“組件服務――計算機 – 我的電腦 --- distributed transaction coordinator –本地DTC上右鍵屬性安全選項卡上設置:選中“網絡DTC訪問”。在客戶端管理中選中“允許遠程客戶端”“允許遠程管理”,在事務管理通訊中選“允許入站”“允許出站”“不要求進行驗證”,保證DTC登陸賬戶為:NT Authority\NetworkService。