我已经在一个循环中运行一个程序,每次迭代运行在不同的线程,我创建新的进程打开新的服务主机:从我的主程序什么是命名管道(net.pipe)限制?
ServiceHost _host = new ServiceHost(_service, new Uri("net.pipe://localhost/" + i_PipeName));
_host.AddServiceEndpoint(typeof(ICommandService), new NetNamedPipeBinding() { TransferMode = TransferMode.Buffered }, i_PipeName);
_host.Open();
我连接到开放.NET管的方式如下:
ICommandService ServiceProxy = ChannelFactory<ICommandService>.CreateChannel
(new NetNamedPipeBinding(), new EndpointAddress(@"net.pipe://localhost/" + i_PipeName" + @"/" + i_PipeName));
所以我的问题是,第一200+ proccess /迭代它工作正常,我可以打开的连接和传递消息,但后来出现的错误,开始出现:
有没有终点在 net.pipe听://本地主机/ pipea0360/pipea0360是可以接受 消息。这通常是由不正确的地址或SOAP操作引起的。 有关更多详细信息,请参阅InnerException(如果存在)。
我的问题是,如果我可以并行打开的管道数量有任何限制吗?
这是因为我开了这么多的proccesses?
您是否按照异常的建议*参见InnerException *?它可以帮助您确定问题的实际原因。也许你可以在你的问题中编辑内部异常的描述。 – MvanGeest
@MvanGeest内部异常相同外一个:没有终点的net.pipe听://本地主机/ pipea0360/pipea0360是可以接受的消息。 –
您正在为每个_host创建一个新线程,以便创建超过200个线程?为什么?我相当确信线程的最佳数量小于200.为什么超过200 _host? – Paparazzi