的問題是,我們有一個網站上的一個獨立的網絡服務器(Windows 2003的SP2 - 機器名稱是TESTAPP它可以是以下孫中山在日誌中),它採用的TransactionScope。MSDTC從獨立的機器到域計算機
SQL Server 2008 R2計算機(Windows Server 2008)位於域中。
當單機打是它失敗的TransactionScope(錯誤細節將隨之而來)。
當我在同一個域中DB服務器從運行的機器代碼,它工作正常。
在獨立的機器,我得到的無處不在的錯誤:
Error HRESULT E_FAIL has been returned from a call to a COM component.
然而MSDTC設置正確,它使用網絡服務的方式。 DTCPing.exe兩種工作都很好。
在挖掘到數據庫機器,我發現了以下審覈失敗:
帳戶無法登錄。
Subject:
Security ID: NULL SID
Account Name: -
Account Domain: -
Logon ID: 0x0
Logon Type: 3
Account For Which Logon Failed:
Security ID: NULL SID
Account Name: TESTAPP$
Account Domain: WORKGROUP
Failure Information:
Failure Reason: Unknown user name or bad password.
Status: 0xc000006d
Sub Status: 0xc0000064
Network Information:
Workstation Name: TESTAPP
Source Network Address: 192.168.**.**
Source Port: 1202
的單機試圖登錄到SQL Server計算機使用它自己的機器名,天知道它是什麼用的密碼。
因此是有可能得到MSDTC從單機工作到域的機器?
P.S.如果可能的話(如果有另一種方法),我不想影響'HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSDTC \ TurnOffRpcSecurity'註冊表項。
P.P.S.如果可能的話,我想在MSDTC上保持相互認證要求(我知道一種可能的解決方案是將MSDTC設置爲不需要認證,但我不確定這是否完全有必要)
有關奇怪的事情它正在使用測試獨立Web服務器域DB服務器MSDTC工作正常,無論設置爲無身份驗證或相互身份驗證! :S
P.P.S.防火牆在兩臺機器上都關閉。
事實上,我用一個連接,並通過它來多種方法,在訪問多個數據庫實例DTC踢不過時,看到http://stackoverflow.com/questions/1690892/transactionscope-automatically-escalating-to- msdtc-on-some-machines提供了一些有趣的見解,PS使用SQL 2000 dtc會被全部使用:S – 2013-05-07 11:31:04
另請參閱上面鏈接中的更新1部分,根據MS跨域的邊界將導致DTC啓動。 – 2013-05-07 11:37:53
謝謝保羅我從來不知道這一點。我一直試圖將我的所有需求保留在一個數據庫中。所有外部數據庫內容都通過(web/WCF)服務進行訪問和更新。所以我從來沒有遇到過那個。 – Justjyde 2013-05-07 11:47:15