ループで実行されるプログラムがあり、各反復は異なるスレッドで実行され、新しいサービス ホストを開く新しいプロセスを作成しています。
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回以上のプロセス/反復で正常に機能し、接続を開いてメッセージを渡すことができますが、後でエラーが表示されることです:
メッセージを受け入れることができる net.pipe://localhost/pipe0360/pipe0360 でリッスンしているエンドポイントはありませんでした。これは、多くの場合、アドレスまたは SOAP アクションが正しくないことが原因です。詳細については、存在する場合は InnerException を参照してください。
私の質問は、同時に開くことができるパイプの数に制限があるかどうかです。
これは、非常に多くのプロセスを開いているためですか?