我试图在vb.net中异步调用这个web服务。所以在aspx方面我添加了这个属性async =“true”。现在在vb.net代码端,我在我的网络服务中有这个函数,我正在调用。 所以 -
dim as as webservice.webstring
as.functionasync(param1, param2)
现在,当我运行页面时,我可以看到它在时间差之后不会调用web服务。 我应该添加.thread.sleep()吗? 我需要beginAsyn函数和EndAsyn函数吗? 我正在使用带有IIS7的asp.net 3.5
答案 0 :(得分:1)
首先,请阅读this MSDN article,了解异步页面如何在ASP.NET中运行。
其次,您需要在Web服务中使用异步方法。请阅读this HOWTO article有关如何创建此类方法的信息。
这是异步页面的实现方式:
private _as as WebService.WebString = Nothing
Public Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
AddOnPreRenderCompleteAsync(New BeginEventHandler(BeginCallingWebService),
New EndEventHandler(EndCallingWebService));
End Sub
Private Function BeginCallingWebService(Byval sender As Object, ByVal e As EventArgs, ByVal cb As AsyncCallback, ByVal state As Object)
_as = New WebService.WebString()
Return _as.BeginMyMethod(cb, state)
End Function
Private Sub EndCallingWebService(ByVal ar as IAsyncResult)
Dim result As MyWebServiceResult = _as.EndMyMethod(ar)
' Process the result of the web-service method
End Sub
希望这会对你有所帮助。