已禁用對分佈式事務管理器(MSDTC)的網絡訪問。請使用組件服務管理工具啓用 DTC 以便在 MSDTC 安全配置中進行網絡訪問。

今天寫ASP.NET程序,在網頁後臺的c#代碼裏寫了個事務,事務內部對一張表進行批量插入,對另一張表進行查詢與批量插入。html

結果第二張表查詢後foreach迭代操做時報錯:已禁用對分佈式事務管理器(MSDTC)的網絡訪問。請使用組件服務管理工具啓用 DTC 以便在 MSDTC 安全配置中進行網絡訪問。sql

個人開發環境:開發機:WINXP,vs2010,IIS, 服務器:WIN2003,VS2010,SQL2005數據庫

解決:須要在開發機和服務器都添加MSDTC事務管理器(我直接操做Windows xp配置MSDTC的方法),具體以下:c#

一、刪除註冊表中的鍵:
1.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC
2.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
四、中止MSDTC服務:net stop msdtc
五、卸載MSDTC服務:msdtc -uninstall
六、從新安裝MSDTC服務:msdtc -install  

操做系統最好不要用ghost安裝。


啓用網絡Com+ 訪問
啓用網DTC
也一塊兒安裝一下


網絡MSDTC配置方法咱們有時會發現一下問題:已禁用對分佈式事務管理器(MSDTC)的網絡訪問。請使用組件服務管理工具啓用 DTC 以便在 MSDTC 安全配置中進行網絡訪問。能夠由本文解決。1、啓用網絡 DTC 訪問的步驟windows

啓用網絡DTC是分佈式數據庫事物控制的必要條件。設置過程應依下面步驟進行。安全

1)      單擊「開始」,指向「控制面板」,而後單擊「添加或刪除程序」;服務器

2)      單擊「添加/刪除 Windows 組件」;網絡

3)      選擇「應用程序服務器」,而後單擊「詳細信息」;tcp

4)      選擇「啓用網絡 DTC 訪問」, 網絡管理 、網絡事務、XA 事務。另外,DTC 登陸賬戶必定要設置爲「NT Authority\NetworkService」,而且事務管理器通信不要求進行驗證。而後單擊「肯定」;分佈式

5)      單擊「下一步」;

6)      單擊「完成」;

7)      中止分佈式事務處理協調器服務,而後從新予以啓動;

8)      中止 Microsoft SQL Server 和其餘參與分佈式事務處理的資源管理器服務(如 Microsoft 消息隊列),而後將其從新啓動。

2、Windows xp配置MSDTC的方法

控制面板-----〉管理工具-----〉組件服務


選擇組件服務-----〉計算機--------〉個人電腦,再點擊鼠標右鍵。






「點擊安全性配置(I)….」按鈕,選擇項以下:








引自:http://www.cnblogs.com/lastbeachhead/archive/2009/04/14/1435448.html


       配置msdtc須要分別配置數據庫服務器和開發機,由於只有兩個機器都配置正確了,分佈式事務纔不會報烏七八糟的錯誤。若是數據庫服務器和開發機是同一臺機器,那就不用看本文了,由於不存在分佈式事務的問題。

       數據庫服務器和開發機中配置msdtc的步驟是同樣的,下面列出配置步驟。

     一、防火牆。若是防火牆是關的,那就不用再設置了。若是防火牆是開的,那麼確保msdtc.exe是在它的例外裏,通常這個程序是在C:\Windows \System32 \msdtc.exe這個角落。有時候你會發如今防火牆的例外裏添加了msdtc,仍是不行,那有多是跟一個端口有關係,即135端口,這是個RPC端 口,在出錯的時候,能夠嘗試將該端口也添加到防火牆的例外裏。

     二、打相關數據庫補丁。若是數據庫服務器是sql2000,那麼確保已經打了sp4補丁。也許有人會說,這是什麼年代了,還用sql2000作數據庫服務 器,可是要記住,買單的是客戶,而不是咱們本身,客戶通常狀況下幾年前買了sql2000,不必定會被你說服去花錢升級到2005或2008。若是數據庫 是sql2005,那麼最好把sq2 補丁打上。

    三、msdtc的配置。msdtc的配置是在組件服務裏進行的,具體以下圖所示,我也就不一一說了。這裏是用windows2008爲例的,其它版本的設置都相似。

         在使用本地協調器上打上勾。

設置msdtc屬性頁

關鍵是這頁必定要設置正確。

      四、設置com+。不少人遇到msdtc的問題後,在網上百搜搜不到解決辦法,故流傳被com+完全戰勝了,偶對com+沒什麼研究,下面的設置也是從別人那裏學的,我這裏作個總結而已。

編輯[訪問權限]和[啓動和激活權限]的默認值,將network service帳號設置爲擁有全部權限。

      五、檢查註冊表。檢查下圖中顯示的兩項的值。在註冊表中的路徑在圖片的下方能夠看到。

1.啓動2臺sql server服務器的msdtc服務,作cluster的話,必須爲每一個節點運行comclust.exe2.2臺sqlserver都要設置好對方的linkserver,3.若是2臺sql server服務器不屬於同一個網段,則須要雙方配置host,保證ping機器名能夠ping通對方4.可使用dtcping工具測試一下5.這樣,就sql server能夠進行分部式查詢和事務操做了。

相關文章
相關標籤/搜索