天天看點

MSDTC啟用——分布式事務

一、前言

最近在做一個項目的時候使用了

.NET

中的

System.Transactions

(分布式事務),當項目開發完成以後,調用的時候遇到了

MSDTC

的問題,在查閱了相關資料後将這個問題解決了,大緻的問題主要是使用了分布式事務,而無法通路到資料庫的問題,網上很多解決方法,都是啟動一下服務,然後再修改服務元件的選項,但是當Web伺服器與資料庫不在同一台機器上的時候,還是會報錯。

錯誤如下:

MSDTC啟用——分布式事務

二、MSDTC說明

MSDTC

(分布式交易協調器),協調跨多個資料庫、消息隊列、檔案系統等資料總管的事務。

該服務的程序名為

Msdtc.exe

,該程序調用系統

Microsoft Personal Web Server

Microsoft SQL Server

該服務用于管理多個伺服器。

三、解決方案

  • 在服務中啟動

    Distributed Transaction Coordinator

    服務
    MSDTC啟用——分布式事務
  • 修改元件服務裡的選項

    點選打開

    開始

    —>

    管理工具

    元件服務

    依次展開

    元件服務

    計算機

    我的電腦

    Distributed Transaction Coordinator

    ,右擊

    本地DTC

    ,選擇

    屬性

    ,按下圖進行設定,設定完成後點選确定。
MSDTC啟用——分布式事務
這個時候本地已經可以正常使用了,但是Web伺服器與資料庫伺服器不在同一台機器上的時候,還是會報錯,這個時候需要在資料庫伺服器上打開一個端口和一個應用程式。
  • 打開防火牆設定,添加出/入站規則

    端口:

    135

    應用程式:

    C:\Windows\System32\msdtc.exe

    MSDTC啟用——分布式事務
MSDTC啟用——分布式事務

四、相關指令

  • 啟動MSDTC服務:

    net start msdtc

  • 停止MSDTC服務:

    net stop msdtc

  • 解除安裝MSDTC服務:

    msdtc -uninstall

  • 重新安裝MSDTC服務:

    mstdc -install

五、問題相關

  • 基礎程式在 Open上失敗。
  • 已禁用對分布式事務管理器(MSDTC)的網絡通路。
  • 伺服器上的MSDTC不可用。

繼續閱讀