0

読者の皆さん、こんにちは!そこで、クライアント サーバー システムを開発しようとしています。以前にクライアント サーバー システムを設計したことがないので、質問を投稿して、ここの専門家が何を言わなければならないか見てみようと思いました。

要件: .NET 3.5 WCF 2 台以上のコンピューター (マスターとスレーブ)。

ユースケースは、スレーブがマスターの要求でテストを実行するテスト環境です。

質問: スレーブがマスターを見つけて接続し、マスターが制御を取得して実行するテストを開始することを希望します。スレーブは、新しいテスト データ、予期しないイベントなどの進捗レポートも作成します。

私が混乱している部分は、スレーブがマスターとの接触を開始した場合、それは彼をマスターにしないということですか?

これは、アクティビティを開始できるように、スレーブとマスターの両方にサービスホストが必要であることを意味しますか?

4

4 に答える 4

4

私はブログ投稿でこの質問に答えることにしました:

http://dotmad.net/blog/2009/02/the-role-ofclients-and-services-in-wcf

于 2009-02-13T18:11:15.320 に答える
0

なぜあなたの質問が反対票を投じられているのかわかりません、それは私には大丈夫のようです:)

もし私があなたなら、netMsmqBindingを使いたくなるかもしれません(私はキューが大好きです!)。マスターはメッセージをMSMQキューに入れることでスレーブに要求をディスパッチでき、スレーブはMSMQを介してステータスレポートをマスターに送り返すことができます。このようにして、2つのプロセスは独立して機能し、一方が他方に追いつくことを心配する必要はありません(一方が完全に機能しなくなった場合を除きます)。

これを行うには、両方のプロセスでServiceHostが必要になります。マスターはnetMsmqサービスをホストする必要があり、スレーブもホストする必要があります。それぞれに、メッセージを送信するためのクライアントバインディングも必要になります。

これにより、より多くの並列処理が必要な場合に、スレーブ(またはマスター)の数をスケールアウトすることもできます。(すべてのスレーブは、同じキューからメッセージをプルすることができます)。

ちょっとした考え。

于 2009-02-12T03:01:16.813 に答える
0

DuplexContractsをチェックしてください。これにより、クライアントに呼び出すことができるメソッドを知ることができます。WCFにはイベント処理もありますが、通常の.NETイベントよりも少し多くの作業が必要です。

于 2009-02-20T03:39:19.373 に答える
0

クライアント/サーバーとマスター/スレーブを混同しないでください。マスターはアクションを制御しますが、サーバーは接続をリッスンします。

クライアント (スレーブ) がすべての接続を開始している場合、マスターで必要なのは、これらの要求をリッスンするもの (Web サービスなど) と処理システムだけです。

于 2009-02-12T01:34:22.230 に答える