Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C创建Win32 Console客户端以访问远程DCOM服务器,收到错误80070005_C#_C++_Visual Studio 2010_Dcom - Fatal编程技术网

C# 使用C创建Win32 Console客户端以访问远程DCOM服务器,收到错误80070005

C# 使用C创建Win32 Console客户端以访问远程DCOM服务器,收到错误80070005,c#,c++,visual-studio-2010,dcom,C#,C++,Visual Studio 2010,Dcom,我的操作系统是Win7 Ultimate中文版,工具是VS2010 Ultimate。我在下面的步骤中用VS2010创建了一个DCOM服务:Visual C++ + > ATL -> EXE->添加一个接口,并编译它没有错误。 然后将idl文件复制到另一个目录,使用“MIDL xxx.idl”命令编译idl文件,获得tlb文件,并使用“tlbimp xxxlib.tlb”获得xxxlib.dll文件。之后,我创建了一个win32 console exe应用程序,其中C#referect指定了xx

我的操作系统是Win7 Ultimate中文版,工具是VS2010 Ultimate。我在下面的步骤中用VS2010创建了一个DCOM服务:Visual C++ + > ATL -> EXE->添加一个接口,并编译它没有错误。 然后将idl文件复制到另一个目录,使用“MIDL xxx.idl”命令编译idl文件,获得tlb文件,并使用“tlbimp xxxlib.tlb”获得xxxlib.dll文件。之后,我创建了一个win32 console exe应用程序,其中C#referect指定了xxxlib.dll

问题是,当我运行C#client时,我得到了错误80070005,表示获取带有CLSID{xxx}的远程组件失败


Ps:我确信两台机器之间的连接没有问题,因为我可以相互ping。我还在服务器计算机上注册了xxxps.dll。

您必须调整DCOM设置。谷歌的DCOM配置教程。例如-@SChepurin非常感谢你,SChepurin。但在“组件服务”窗口的“DCOM配置”子树下找不到我的DCOM组件。请给我更多提示,谢谢。您应该使用regsvr32实用工具注册服务器-拒绝访问错误肯定是杀死DCOM并使Java取得重大进展的原因。仅仅ping机器并不能证明什么,客户端程序使用的用户帐户必须在服务器机器上也是已知的,并且在该机器上具有足够的权限。必须模拟另一个用户很快就会变得丑陋,DCOM配置或协同初始化安全性是一个黑洞。@SChepurin:谢谢你的提示,但我已经在服务器上安装了“regsvr32”。