win7 系统多线程并发调用Dcom远程组件失败,返回“远程过程调用失败,未能执行。(从 HRESULT 异常: 0x800706BF)

古巴与八股 2016-12-09 10:42:37


win7 系统客户端多线程并发调用VxWorks服务端的Dcom远程组件,当线程数超过6个的时候,客户端就会异常终止,返回:

“未经处理的异常:
未经处理的异常: System.Runtime.InteropServices.COMException: 远程过程调用失败
且未执行。 (异常来自 HRESULT:0x800706BF)”。

Dcom接口类是用VxWorks的dcomwizard引导器生成的,非常简单的一个接口,传入int值。

virtual HRESULT MintIn (INT* para) =0;

//实现

STDMETHODIMP IntinoutImpl::MintIn(INT * para) {
printf("printf %d ", *para);
return S_OK;
}

windows系统的客户端多线程调用

System.Guid guid = new Guid("{0xeee5xx90,0x3x60,0x11x6{0x00,0xx9,0x00,0x00,0x00,0x00,0x00,0x00}}");
System.Type t = Type.GetTypeFromCLSID(guid, remoteIP, true);
object COMObject = System.Activator.CreateInstance(t);
bstrLib.Istr co = COMObject as bstrLib.Istr;

//多线程调用
for (int i = 1; i <= 10; i++) //超过6个线程有时能够调用成功,大多数情况下失败
{
Thread thread = new Thread(new ParameterizedThreadStart(RConnect));
thread.Start(i);
}
private static void RConnect(object k)
{
for (int i = 1; i <= 5000; i++)
{
//Thread.Sleep(300);
Com.co.MinIn(i);
}
}

有人用到过远程调用Dcom组件吗,请大牛们帮忙看看是什么原因, 谢谢了。
...全文
1583 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧