DCOM服务器无法注册

时间:2009-07-17 10:11:52

标签: dcom

我收到此错误

  

资料来源:DCOM
  Event_ID:10010

     

“服务器   {6FC4FDAE-96C8-11D3-9F9C-005004053207}   没有在DCOM中注册   需要超时。“

这是针对特定的exe,当本地系统运行时工作正常但在非内置管理员下运行失败时。 我需要exe在非内置管理员下运行。

目前我在使用Citrix的Win 2k3计算机上遇到此问题。

但是我之前在XP机器上也遇到过这个问题。

有关解决问题的任何提示吗?

3 个答案:

答案 0 :(得分:7)

由于我不完全理解上下文...以下是一些帮助您解决问题的提示...它有助于在原始计算机和目标计算机上拥有管理员权限....(至少要配置和检查)

DCOM可能令人眼花缭乱。在跨机器边界处理DCOM时,问题很可能是冲突的安全性和/或本地计算机和应用程序的凭据,防火墙和DCOM设置。就80/20原则而言......这里有一些简单的规则可以让你进入大球场。

首先,使安全性可见:在原始计算机上启动SecPol.MSC,找到本地策略/审核策略并在每种事件类型上启用审核。你可以在目标机器上做到这一点。

Crank Up DCOM事件记录。请按照以下说明http://support.microsoft.com/kb/892500

其次,更改已知踩踏DCOM的默认工作组设置。确保在原始计算机和目标计算机上都禁用简单文件共享(也称为仅限访客的身份验证)。如果两者都在域中,则可能已禁用。否则...... secpol.msc \安全设置\安全选项\网络访问:共享为本地帐户的安全模型(设置为经典)

第三,掌握所需的安全性......

如果两台计算机位于不同的域或一台(或两者都在工作组中),请了解所需的通用安全性;也就是说,凭证必须是通用的或在每台机器上同步。也就是说,对于在原始计算机上运行进程的登录,目标计算机上必须存在相同的凭据。对于同一域中的两者,请不要担心,因为一台计算机的基于域的凭据将与另一台计算机相同。

第四,如果可以,请将防火墙放在一边。

暂时禁用它..但只有在安全的情况下才允许。否则,通过exename(135 / 139udp)假设netbios端口和您的应用程序。使用的端口是一个假设;即这可能不对。

第五,在它变得过于复杂之前......只需尝试引发错误(运行程序)并查看两台机器上的系统和安全日志。如果是安全问题,它会像拇指一样伸出,你可以相应地调整。

如果没有,dcomcnfg将成为你的朋友。特定组件的DCOM设置按以下预先确定:代码执行,程序设置和默认机器设置。 Dcomcnfg将帮助您解决后两者。您可以在http://www.opcfoundation.org/DownloadFile.aspx?RI=326

找到更具体(但简化)的路线

如果你被卡住了,请跟进......

答案 1 :(得分:1)

使用DCOM时的权限问题会让你感到痛苦......他们介于系统管理员和程序员之间,直到人们对其他人了解得足够多,他们才能很难克服。

至于您的特定问题,此错误消息的原因是服务器启动时间过长,延迟对超时到期后对CoRegisterClassObject的调用。在我查看COM之前,我会在服务器启动时查找问题的原因。检查您执行的任何初始化(全局变量构造函数等)并确保不会抛出任何异常。更改用户可能会导致某些目录或注册表配置单元无法访问,可能会破坏初始化。

我要做的是首先使用ProcMon监控服务器活动。这样可以轻松找到任何拒绝访问的问题,并向您显示相关的堆栈跟踪。如果需要调试,只要在these instructions之后启动exe,就可以附加调试器。最后,如果在没有VS的计算机上出现问题,您可以使用WinDBG来调试该过程。

答案 2 :(得分:1)

在我的情况下,我机器上的XP被我公司的IT人员修改过。因此,他们通过某些组策略拒绝访问某些DCOM设置,即使是管理员组也是如此。

解决方法是在使用内置管理员帐户的凭据打开的命令提示符中手动注册DCOM服务器。