wsDualHttpBinding でホストされているコールバック サービスがあります。コールバックを受信するのではなく、データをポーリングするクライアントを追加しようとしています (デモ目的で wince を使用するモバイル デバイスになります)。これを行う最善の方法は何ですか?wsDualHttpBinding でホストされているサービスで NetCFSvcUtil を使用してクライアント プロキシを作成することはできませんが (それは理解しています)、basicHttpBinding でコールバック サービスをホストすることはできません。basicaHttpBinding (クライアントはデータをポーリングします) と wsDualHttpBinding (コールバックはクライアントにデータを通知します) の両方でホストされる同じサービスが本当に必要です。同じデータをホストする 2 つの別個のサービスを作成せずにこれを処理する最善の方法についてのアイデアはありますか?
1648 次
1 に答える
2
同じデータをホストする 2 つの別個のサービスとは、どういう意味ですか? wsDualHttpBinding と basicHttpBinding の両方のリクエストを処理するために、同じサービス インスタンスを共有することを期待していますか?
現在の問題は、双方向通信用のサービス インターフェイスが basicHttpBinding に使用できないことです。2 番目のサービス コントラクトを作成し、同じサービスに実装する必要があります。その場合、サービスの 2 つのエンドポイントを公開できます。エンドポイントには、異なる相対アドレスが必要です。クライアントから見ると、これらのエンドポイントは個別のサービスです。それぞれに個別のクライアント プロキシが必要です。したがって、サービスがシングルトンでない限り、クライアント プロキシごとに新しいサービス インスタンスが作成されます。新しいサービス インスタンスは、データ共有がないことを意味します。
この動作を変更する可能性はいくつかありますが、それはインスタンス プロバイダーを置き換えることを意味します。
于 2010-09-20T19:31:05.630 に答える