「ステータスツール」を添付してWindowsサービスを作成しています。このサービスは、プロセス間通信用のWCF名前付きパイプエンドポイントをホストします。名前付きパイプを介して、ステータスツールは定期的にサービスに最新の「ステータス」を問い合わせることができます。私の開発マシン上でWCF NamedPipe CommunicationException - "パイプが終了しました。(109、0x6d)。"
、私は複数のIPアドレスを持っています。そのうちの1つは192.168.1.XXアドレスの「ローカル」ネットワークです。もう1つは10.0.X.XXアドレスを持つ "コーポレート"ネットワークです。 Windowsサービスは、単一のIPアドレスでUDPマルチキャストトラフィックを収集します。
"192.168.1.XX"アドレスを使用している限り、これまでWindowsサービスは正常に動作していました。ステータスをクライアントに常に一貫して報告します。状態を取得する際
はできるだけ早く私は他の、「企業の」IPアドレス(10.0.X.XX)に切り替え、サービスを再起動すると、私は連続「CommunicationExceptions」を取得:今
"There was an error reading from the pipe: The pipe has been ended. (109, 0x6d)."
、私は、UDPクライアントの「主張された」IPアドレスがNamed-Pipeインターフェースの機能と何らかの関係があるとは思わないでしょう。彼らはアプリケーションの完全に別の部分です!ここで
は、関連するWCFの設定セクションです:
//On the Client app:
string myNamedPipe = "net.pipe://127.0.0.1/MyNamedPipe";
ChannelFactory<IMyService> proxyFactory =
new ChannelFactory<IMyService>(
new NetNamedPipeBinding(),
new EndpointAddress(myNamedPipe));
//On the Windows Service:
string myNamedPipe = "net.pipe://127.0.0.1/MyNamedPipe";
myService = new MyService(myCustomArgs);
serviceContractHost = new ServiceHost(myService);
serviceContractHost.AddServiceEndpoint(
typeof(IMyService),
new NetNamedPipeBinding(),
myNamedPipe);
serviceContractHost.Open();
私は、これは「アクセス権」の問題だと思いません - 私は管理者権限でクライアントを実行している - おそらくいくつかのドメイン固有の理由がありますこれが壊れた?
例外スタックトレースはどのように見えますか?あなたは確かですか?他に何も変わっていませんか?サービス設定を切り替えた後にステータスツールを再起動しましたか?ステータスツールコードの一部を投稿して、あなたのRPCをインスタンス化し、WCFコールを発信できますか? –
私は仕事に戻る月曜日に質問を更新します。友人はまた、IPアドレスが赤ん坊であるかもしれないことを示唆し、実際の違いは特定の列挙型の戻り値かもしれません。私もそれを調べます。 – BTownTKD