天天看點

事務使用時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"開啟服務後正常。

<a href="http://blog.photo.sina.com.cn/showpic.html#url=http://s1.sinaimg.cn/orignal/67aaf444gb55b14c08380" target="_blank"></a>

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

注:如果在第1步distributed transaction coordinator 無法啟動,則是因為丢失了日志檔案,重新建立日志檔案,再啟動就行了。重新建立 msdtc 日志,并重新啟動服務的步驟如下:

(1) 單擊"開始",單擊"運作",輸入 cmd 後按"确定"。

(2) 輸入:msdtc -resetlog (注意運作此指令時,不要執行挂起的事務)

(3) 最後輸入:net start msdtc 回車,搞定!