閱讀114 返回首頁    go 阿裏雲 go 技術社區[雲棲]


事務使用時MSDTC不可用解決辦法

 

在使用Linq對多表進行插入的時候,使用了TransactionScope

using (TransactionScope scope = new TransactionScope())
{
       BLL.R_Paper_QbankBLL.DeleteByPaperId(pid);
       BLL.M_Test_PapeBLL.Delete(pid);
       scope.Complete();
}
JsHelper.Alert("刪除成功", this);

使用時提示“MSDTC不可用”,這是怎麼回事呢?

 

MSDTC(分布式交易協調器),協調跨多個數據庫、消息隊列、文件係統等資源管理器的事務。該服務的進程名為Msdtc.exe,該進程調用係統Microsoft Personal Web Server和Microsoft SQL Server。該服務用於管理多個服務器 。


位置:控製麵板--管理工具--服務--Distributed Transaction Coordinator
依存關係:Remote Procedure Call(RPC)和Security Accounts Manager
建議:一般家用計算機涉及不到,除非你啟用Message Queuing服務,可以停止。


解決辦法:

方法1. 在windows控製麵版-->管理工具-->服務-->Distributed Transaction Coordinator-->屬性-->啟動
方法2. 在CMD下運行"net start msdtc"開啟服務後正常。





注:如果在第1步Distributed Transaction Coordinator 無法啟動,則是因為丟失了日誌文件,重新創建日誌文件,再啟動就行了。重新創建 MSDTC 日誌,並重新啟動服務的步驟如下:
(1) 單擊"開始",單擊"運行",輸入 cmd 後按"確定"。
(2) 輸入:msdtc -resetlog (注意運行此命令時,不要執行掛起的事務)
(3) 最後輸入:net start msdtc 回車,搞定!

 

參考地址:https://blog.csdn.net/bobwu/archive/2009/07/30/4392616.aspx

最後更新:2017-04-02 22:16:01

  上一篇:go 解決vs2010中文本編輯器對frameset不支持
  下一篇:go frameset應用例子——利用javascript跳轉