一、前言 最近在做一個項目的時候使用了 中的 (分散式事務),當項目開發完成以後,調用的時候遇到了 的問題,在查閱了相關資料後將這個問題解決了,大致的問題主要是使用了分散式事務,而無法訪問到資料庫的問題,網上很多解決方法,都是啟動一下服務,然後再修改服務組件的選項,但是當Web伺服器與資料庫不在同一 ...
一、前言
最近在做一個項目的時候使用了.NET
中的System.Transactions
(分散式事務),當項目開發完成以後,調用的時候遇到了MSDTC
的問題,在查閱了相關資料後將這個問題解決了,大致的問題主要是使用了分散式事務,而無法訪問到資料庫的問題,網上很多解決方法,都是啟動一下服務,然後再修改服務組件的選項,但是當Web伺服器與資料庫不在同一臺機器上的時候,還是會報錯。
錯誤如下:
二、MSDTC說明
MSDTC
(分散式交易協調器),協調跨多個資料庫、消息隊列、文件系統等資源管理器的事務。
該服務的進程名為Msdtc.exe
,該進程調用系統Microsoft Personal Web Server
和Microsoft SQL Server
。
該服務用於管理多個伺服器。
三、解決方案
在服務中啟動
Distributed Transaction Coordinator
服務
修改組件服務里的選項
點擊打開開始
—>管理工具
—>組件服務
依次展開組件服務
—>電腦
—>我的電腦
—>Distributed Transaction Coordinator
,右擊本地DTC
,選擇屬性
,按下圖進行設置,設置完成後點擊確定。
這個時候本地已經可以正常使用了,但是Web伺服器與資料庫伺服器不在同一臺機器上的時候,還是會報錯,這個時候需要在資料庫伺服器上打開一個埠和一個應用程式。
- 打開防火牆設置,添加出/入站規則
埠:135
應用程式:C:\Windows\System32\msdtc.exe
四、相關指令
- 啟動MSDTC服務:
net start msdtc
- 停止MSDTC服務:
net stop msdtc
- 卸載MSDTC服務:
msdtc -uninstall
- 重新安裝MSDTC服務:
mstdc -install
五、問題相關
- 基礎程式在 Open上失敗。
- 已禁用對分散式事務管理器(MSDTC)的網路訪問。
- 伺服器上的MSDTC不可用。