我们有一个DCOM应用程序,有很多业务方法。该应用程序是用VC6编写的,运行正常,并作为DLL部署。
从托管DCOM DLL的计算机(DCOM Server)调用时,使用DCOM内容的应用程序正常工作。
编辑4: DCOM应用程序托管有以下属性
问题在于分布式部署,其中导出DCOM应用程序的代理(通过从DCOMCNFG导出为代理),并安装在另一台PC(DCOM客户端)中。在这种情况下,DCOM测试应用程序无法正常工作。
在检查先决条件时,我们发现了以下条件
我们已经完成了所有先决条件,但应用程序仍然无效:(
我们是否遗漏了任何内容或任何设置?
请指导我。提前谢谢。
编辑1:在客户端尝试时,测试应用程序无法创建对象本身。
编辑2: [已解决]错误
编辑3: 将两台PC放在同一子网中时(子网之间有硬件防火墙),解决了上述问题。
[新错误]如果PC使用相同的用户使用相同的密码登录,则应用程序正在运行,但在WORKGROUP中。但是,如果在任何PC中更改了密码,则应用程序会抛出以下错误。
System.InvalidCastException: Unable to cast COM object of type 'MyDCOM.ApplicationClass' to interface type 'MyDCOM.IApplication'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{18B31ADE-04BF-445A-ADE9-0984EBF49D8F}' failed due to the following error: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).