MSDTC啟用——分布式事務


一、前言

最近在做一個項目的時候使用了.NET中的System.Transactions(分布式事務),當項目開發完成以后,調用的時候遇到了MSDTC的問題,在查閱了相關資料后將這個問題解決了,大致的問題主要是使用了分布式事務,而無法訪問到數據庫的問題,網上很多解決方法,都是啟動一下服務,然后再修改服務組件的選項,但是當Web服務器與數據庫不在同一台機器上的時候,還是會報錯。
錯誤如下:

二、MSDTC說明

MSDTC(分布式交易協調器),協調跨多個數據庫、消息隊列、文件系統等資源管理器的事務。
該服務的進程名為Msdtc.exe,該進程調用系統Microsoft Personal Web ServerMicrosoft 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不可用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM