我正面临一个相当奇怪且非常具体的 DCOM 相关问题,我希望有人可能已经遇到并解决了它。
我正在尝试在 Windows 7 机器上的 EXE 服务器中实例化一个 COM 对象(称为 W7)。客户端驻留在 Windows XP 机器上(称为 WXP)。在 WXP 上,登录用户是域用户。在 W7 上,用户是本地用户。我已经(afaik)正确设置了所有 DCOM 权限、身份验证和帐户权限。不涉及防火墙。
我得到的只是 COM EXE 服务器进程在 W7 上启动,使用我期望的用户名,但似乎甚至没有达到它的 WinMain 功能并且保持挂起并且永远不会死,除非我杀死它。我可以将远程调试器(Visual Studio 2010)附加到它,它会警告我进程可能会死锁,当我打破它时,它会在消息队列循环(GetMessage/Dispatch)中停止。
客户端获得一个(看似有效的)指针,但任何尝试使用它都会导致 E_ACCESSDENIED。
如果上述方案中的任何内容发生更改,则 COM 对象的实例化成功并且对象行为正确。
我知道找到答案的机会很小,但非常欢迎任何提示。
谢谢。