私は、同じサーバーまたはLAN上で実行されている2つの.Netプロセス間で全二重通信を処理する最も適切な方法を決定しようとしています。我々は、お互いにメソッドを呼び出すことができる必要がある2つのプロセスを持っています。WCFとの双方向通信 - コールバックを使用するか、単純に2つのチャネルを使用する必要がありますか?
現在、NamedPipeまたはTcpチャネルでWCFを使用しており、ProcessAにProcessBを登録しています。私たちのWCF契約はコールバックインターフェイスを指定しているので、ProcessBはProcessAのメソッドを呼び出すことができます。
私の質問は、次のうちどれが理にかなっていて、よりシンプルで、より強固ですか?
- ProcessBはProcessAのメソッドを呼び出すためにCallbackインターフェイス(WCFでサポート)を使用してください。
- 登録時に、ProcessAはProcessBにProcessBがProcessAに新しいチャネルを使用して登録するために必要な情報を渡しますか?
私はコールバックプロキシの寿命とスレッドの問題を十分に理解していません。コールバックメソッドのブロックに関するさまざまな記事を見てきました。
コールバックチャネルが存在することができ、またはそれは、具体的には、元のチャネルのためのコールバックと考えるべきですか? – DanJ
@DanJ:「元のチャンネル」はどういう意味ですか?セッションを開始するクライアントチャネルを意味する場合は、no:クライアントチャネルを閉じると、コールバックチャネルも閉じます。コールバックチャネルを開いたままにする必要がある場合は、2つの完全に別々のサービスを実行する必要があります。たぶん私はあなたの質問を誤解したかもしれませんが、私はこれが当てはまらないという印象を受けました。 –