我已經在一個循環中運行一個程序,每次迭代運行在不同的線程,我創建新的進程打開新的服務主機:從我的主程序什麼是命名管道(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