在vb.net中异步调用webservice

时间:2011-01-07 22:10:08

标签: vb.net web-services asynchronous

我试图在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

1 个答案:

答案 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

希望这会对你有所帮助。