2013-10-31

TransactionScope導致WCF停止執行

於 Visual Studio 2010 中,某同事每當執行到TransactionScope的程式區塊,就會造成Debug中的WCF Service無預警掛掉而中斷偵錯流程;但比對其他同事執行相同版本的程式,卻可以正常執行完成,因此可以確認應該是該同事(人品?!)環境的問題... 而在該電腦的「事件檢視器」中,也會發現一些MSDTC的錯誤Event Log。


果然在【服務】看到【Distributed Transaction Coordinator】(MSDTC)不是啟用中的狀態,但手動也無法啟動它。

後來參考對岸網友文章重新設置:
右鍵【內容】【登入】【這個帳戶】將其設為【Network Service】:


需要特別注意的是,雖然該服務原本預設即為Network Service帳戶,但此狀況挑選該帳戶後若密碼為自動帶入,仍然無法啟動,要將「密碼」欄留白後再套用,才可正常啟動該服務。
 (可將其設為「自動」啟動,以防止下次又忘記開啟它)

正常執行服務後,再次執行相關的程式區塊,果然就沒問題了!

 【延伸閱讀】

沒有留言:

張貼留言

引用 Topshelf 無法進行偵錯的經驗

Topshelf  是一個可以簡化撰寫 Windows Service 的套件,引用之後,我們只要當作撰寫一般 Console 的應用程式就可以。 只是近來撰寫上遇到無法進行Debug的狀況,在Visual Studio一進行偵錯可以看到Console 程式被執行,並顯示...