TIPS-TransactionScope過三關

.NET新推出的TransactionScope提供了更簡便封裝Transaction的寫法。今天試著從我的Windows 2003 用TransactionScope包裝一段對SQL 2005 @ Windows 2000的程式碼時,卻連闖三關才達陣!

首先,我收到這個錯誤:

System.Runtime.InteropServices.COMException (0x8004D024): The transaction manager has disabled its support for remote/network transactions. (Exception from HRESULT: 0x8004D024)
Network access for Distributed Transaction Manager (MSDTC) has been disabled. Please enable DTC for network access in the security configuration for MSDTC using the Component Services Administrative tool.

後來發現是因為Windows 2003(DB的Client端)的"Enable network DTC access"安裝選項沒開啟(以往都只注意到SQL 2005 Server上要啟用這個功能,今天才確認了Client端也要設定),依在Windows 2003上啟用MSDTC的SOP處理完畢,卻忘了開防火牆給MSDTC.EXE,結果得到以下錯誤:

Error HRESULT E_FAIL has been returned from a call to a COM component.
Communication with the underlying transaction manager has failed.

在防火牆上開放MSDTC.EXE通行後,卻還是同樣的訊息。這才想起: "兩台機器分屬不同網域!"。用了之前的跨網域DTC設定技巧,連闖三關,總算才測通。

今天這篇TIPS算是給大家來個MSDTC設定與錯誤排除總複習吧!

歡迎推文分享:
Published 15 March 2007 03:00 PM 由 Jeffrey
Filed under: , ,
Views: 17,873



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<March 2007>
SunMonTueWedThuFriSat
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication