【发布时间】:2026-02-19 07:25:01
【问题描述】:
我正在尝试从 asp.net 2.0 Web 客户端向 WCF Web 服务进行异步 Web 服务调用。我使用带有异步选项的 svcutil.exe 创建了代理类。以下是调用 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 中的所有内容都会执行,但页面不会显示“Big Test”,直到在回调中执行 client.EndWS。这似乎不是异步的。任何关于如何使异步调用异步的想法或建议都值得赞赏。
【问题讨论】:
-
你是什么意思,“似乎不是异步的”?你看到了什么结果?
-
他似乎希望在 Web 服务仍在执行时看到“Big Test”出现在浏览器中。因此,我的评论是他不懂 ASP.NET。
标签: wcf web-services proxy client