asp.net 2.0 WebクライアントからWCF Webサービスへの非同期Webサービス呼び出しを作成しようとしています。非同期オプション付きのsvcutil.exeを使用してプロキシクラスを作成しました。次に、Webサービスを呼び出すクライアントコードの例を示します。asp.net 2.0 WebクライアントからWCF Webサービス(非同期問題)への非同期Webサービス呼び出し
protected void Page_Load(object sender, EventArgs e)
{
WSClient client = new WSClient();
AsyncCallback asyncCallback = new AsyncCallback(WebServiceCallback);
AsyncCallState asyncCallState = new AsyncCallState(client);
client.BeginWS(value, asyncCallback, asyncCallState);
Response.Write("Big Test");
}
public void WebServiceCallback(IAsyncResult ar)
{
AsyncCallState asyncCallState = (AsyncCallState)ar.AsyncState;
WSsClient client = (WSClient)asyncCallState.WebServiceState;
WSClientResult result = client.EndWS(ar);
}
参照用コードを使用します。 Page_Loadのすべてが実行されますが、コールバックでclient.EndWSが実行されるまで、ページには「Big Test」が表示されません。これは非同期ではないようです。非同期呼び出しを非同期にする方法のアイデアや提案は高く評価されます。
「非同期ではない」とはどういう意味ですか?あなたはどんな結果を見ますか? – Cheeso
Webサービスがまだ実行されている間、彼は "Big Test"がブラウザに表示されることを期待したようです。したがって、彼はASP.NETを理解していないという私のコメント。 –