非同期呼び出しをサポートするWCFサービスを作成しようとしています。私は見つけたすべてのサンプルとチュートリアルに従いました、そしてそれらのすべては1つの同期メソッドの通常のパターンを持っています、そして非同期のBeginとEndは次のようになります:
[OperationContract(AsyncPattern = false)]
string GetData(int value);
[OperationContract(AsyncPattern = true)]
IAsyncResult BeginGetData(int value, AsyncCallback callback, object asyncState);
string EndGetData(IAsyncResult result);
ただし、クライアント側で何をしても、同期GetDataのみが呼び出されます。Fiddlerは、メッセージは常に同じであると言っています。
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><GetData
xmlns="http://tempuri.org/"><value>0</value></GetData></s:Body></s:Envelope>
同期GetDataインターフェースを削除すると、asyncメソッドが正しく呼び出されるようになりました。
これは正常な動作ですか?メソッドの同期バージョンと非同期バージョンをサポートするために他にすべきことはありますか?