3

NetNamedPipeBindingプロトコルを介してWCFを使用して相互に通信する.NETUIおよびWindowsサービスを開発しました。NetNamedPipeを選択したのは、同じマシンでのプロセス間通信に最適で効率的な選択肢だからです。

ただし、アプリケーションの重要な要件の1つは、UIがWindowsサービスにアクションを送信できる必要があることです。その逆も同様です。つまり、Windowsサービスは、.NETUIアプリケーションが最初にWindowsサービスに接続しなくても.NETUIアプリケーションをコールバックできる必要があります。

このことを念頭に置いて、WindowsサービスでWCFサービスをホストし、.NET UIアプリケーションで別のWCFサービスをホストして、通信チャネルを常に有効に保つ必要なしに非同期で通信できるようにしました。

これが良いデザインに意味があるかどうか知りたいです。

同じことについてのコメントをいただければ幸いです。

前もって感謝します。

サブブ

4

3 に答える 3

1

クライアントで別のWCFサービスをホストして、メインのWCFサービスからの呼び出しを受信することはお勧めできません。WCF二重通信(Subbuが投稿したとおり)、別名WCFコールバックを使用する必要があります。

WCF:デュプレックス操作とUIスレッド

于 2012-11-12T18:01:27.663 に答える
0

このアプローチの問題は、サービスがホストとしてクライアントに接続する必要があることです。

より良いオプションは、クライアントを最初に起動するときにWCFコールバックを設定することです。その後、サービスはクライアント通知へのサービスのコールバックを使用できます。詳細については、WCFコールバックの使用を示すこのMSDNの記事を参照してください。

于 2012-11-12T17:40:35.973 に答える
0

WCFコールバックを使用すると、サーバーはクライアントにイベントを送信できます。ここで短くて簡単な例を参照してください:簡単なWCFコールバックの例

于 2017-07-06T12:39:07.403 に答える