0

クライアントにメッセージを送信する WCF サービスがあります。コールバック メソッドを非同期で呼び出したい。この回答を読みました: WCF 非同期コールバック

しかし、問題が 1 つあります。WebServiceReference から IMyServiceCallback を生成すると、同期メソッドと非同期メソッドの両方が含まれます (サービス側では、非同期メソッドのみを持つコールバック コントラクトがあります - BeginCallbackMethod と EndCallbackMethod)。さらに、MyService から Calback BeginCallbackMethod を呼び出すと、クライアント側 (コールバック実装) で同期 CallbackMethod が使用されます。問題はなぜですか?それを構成する方法はありますか?

4

1 に答える 1

0

デフォルトでは、sync と async の両方が存在する場合、WCF は操作の同期バージョンを呼び出します。そのロジックを変更する方法 (または変更するかどうか) はわかりませんが、できることの 1 つは、生成されたコールバック インターフェイスから同期メソッドを単純に削除することです。コールバック コードは引き続き機能し、代わりに非同期実装を使用します。[OperationContract]同じ効果を得るために、同期バージョンから属性を削除することもできます。

于 2012-10-24T17:43:22.957 に答える