DCOM:CoCreateInstanceEx返回E_ACCESSDENIED

Isa*_*ses 5 security dcom windows-xp

我正在使用两台机器上的服务器和客户端的DCOM应用程序,这两台机器都运行带有Service Pack 2的WinXP.在两台机器上,我使用相同的用户名和密码登录.

当一台计算机上的客户端调用CoCreateInstanceEx,要求另一台计算机启动服务器应用程序时,它将返回E_ACCESSDENIED.

我尝试进入dcomcnfg中的服务器应用程序的组件属性,并为所有人提供完整的权限,但这没有帮助.

要使此调用成功,我需要做什么?

更新:当服务器应用程序在Windows 2000机器上运行时,我不会收到此错误; CoCreateInstanceEx返回S_OK.

Sha*_*tin 1

要检查三件事:

1) 返回 dcomcnfg 并尝试确保不仅访问安全性而且“启动权限”部分也包含适当的安全用户或组。

2) 确保身份验证级别设置为“无”以外的其他值

3) 还要检查组件所在的磁盘位置是否确实可供您设置的安全权限中配置的帐户访问。

编辑:

还有一个:您是否也先调用 CoInitialiseSecurity() ?这敲响了警钟!

编辑2:

根据您的更新:尝试在两台 XP 计算机上完全删除防火墙,看看是否会产生影响。您可能需要显式地让 DCOM 通过。