2009-07-17 63 views
3

我收到此錯誤DCOM服務器註冊失敗

來源:DCOM
EVENT_ID:10010

「服務器 {6FC4FDAE-96C8-11D3-9F9C-005004053207} 未註冊DCOM在 需要超時。「

這是一個特定的exe文件,當以本地系統運行時運行正常,但在非內置管理員運行時失敗。 我需要exe在非內置管理員下運行。

目前我在Citrix的Win 2k3計算機上遇到此問題。

但是我之前在XP機器上也遇到過這個問題。

解決此問題的任何提示?

回答

1

在我的情況下,XP。因此,他們通過某些組策略拒絕訪問某些DCOM設置,即使對於管理員組也是如此。

解決方法是在使用內置管理員帳戶的憑據打開的命令提示符下手動註冊DCOM服務器。

1

使用DCOM時的權限問題可能會讓你感到悲傷...它們落在系統管理員和程序員之間,直到人們充分了解對方的部分,他們可能很難克服。

至於您的特定問題,此錯誤消息的原因是服務器啓動時間過長,推遲到超時到期後調用CoRegisterClassObject。在查看COM之前,我會在服務器啓動時查找問題的原因。檢查你做的任何初始化(全局變量構造函數等),並確保沒有拋出異常。用戶的更改可能會導致某些目錄或註冊表配置單元無法訪問,可能會破壞初始化。

我會做的是首先使用ProcMon監視服務器活動。這樣可以很容易地找到任何拒絕訪問的問題,並向您顯示相關的堆棧跟蹤。如果需要調試,只要在these instructions之後啓動exe,就可以連接調試器。最後,如果在沒有VS的機器上發生問題,則可以使用WinDBG來調試該過程。

+0

將試試這個&回來。 – 2009-07-17 17:00:32

7

因爲我沒有完全理解上下文......這裏有一些提示可以幫助您解決問題......它有助於在源計算機和目標計算機上擁有管理員權限......(至少可以配置並檢查)

DCOM可能令人困惑。在機器邊界處理DCOM時,問題很可能是來自本地機器和應用程序的衝突和/或無憑據,防火牆和DCOM設置的安全性。就80/20原則而言......這裏有一些簡單的規則可以讓你進入大球場。

首先,使安全性可見:啓動發起計算機上的SecPol.MSC,找到本地策略/審覈策略並啓用對每種事件類型的審覈。你最好在目標機器上完成它。

Crank Up DCOM事件日誌記錄。遵循這些指示http://support.microsoft.com/kb/892500

其次,更改一個默認的工作組設置已知跺腳遍及DCOM ..確保簡單文件共享(也稱爲客戶唯一身份驗證)在源計算機和目標計算機上都被禁用。如果兩者都在一個域中,那麼它可能被禁用。否則... secpol。MSC \安全設置\安全選項\網絡訪問:共享作爲本地帳戶的安全模式(設置爲經典)

第三,獲得所需要的安全把握...

如果兩臺機器在不同域中或者一個(或兩個都在工作組中)理解所需的通用安全性;也就是說,憑據必須在每臺計算機上都是公用的或同步的。也就是說,對於在原始計算機上運行進程的登錄,目標計算機上必須存在相同的憑據。對於同一個域中的兩個域,不要擔心一臺機器的基於域的憑證將與另一臺機器的相同。

第四,如果可以,請將防火牆擋在外面。

暫時禁用它..但只有當它是安全的。否則,假設netbios端口和您的應用程序exename(135/139udp)。使用的端口是一個假設;即這可能不對。

第五,在它變得太複雜之前......只需嘗試引發錯誤(運行程序)並查看兩臺機器上的系統和安全日誌。如果這是一個安全問題,它會像拇指疼痛一樣伸出,並且可以相應地進行調整。

如果不是,dcomcnfg將成爲您的朋友。特定組件的DCOM設置將按照以下注意事項解決:代碼執行,程序設置和默認機器設置。 Dcomcnfg將幫助您解決後兩個問題。在我的機器是我公司的IT人員修改,如果你被卡住你可以在http://www.opcfoundation.org/DownloadFile.aspx?RI=326

跟帖找到一些更具體的(但簡化的)方向....

+0

感謝您的建議將嘗試它。 – 2009-07-21 16:06:08