在使用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>
注:如果在第1步distributed transaction coordinator 無法啟動,則是因為丢失了日志檔案,重新建立日志檔案,再啟動就行了。重新建立 msdtc 日志,并重新啟動服務的步驟如下:
(1) 單擊"開始",單擊"運作",輸入 cmd 後按"确定"。
(2) 輸入:msdtc -resetlog (注意運作此指令時,不要執行挂起的事務)
(3) 最後輸入:net start msdtc 回車,搞定!