2011-02-08 151 views
0

我目前有一個Web應用程序項目,其中也包含同一項目中的Web服務。我目前有要求異步調用Web服務。因爲我沒有在同一個項目中添加Web服務作爲Web引用,所以我嘗試使用委託來調用Web服務方法,並且看到一個異常「HttpContext不可用,該類只能用於一個ASP.NET請求「,當我嘗試訪問我的Web服務方法調用中的應用程序屬性時。HttpContext不可用 - 異步調用Webservice

Web Method in MyWebServices Class 
Public Function ProcessRequest() As Boolean 
    If Application(STRING_KEY) Is Nothing Then 'Exception happens here' 
    Return True 
    Else 
    Return False 
    End If 
End Sub 

.ASPX Codebehind File 
Public Delegate Function ProcessRequestDelegate() As Integer 

Protected Sub btnSender_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles sender.Click 
    Dim del As ProcessRequestDelegate 
    del = New ProcessRequestDelegate(AddressOf ProcessRequest) 
    del.BeginInvoke(null, null) 
End Sub 

Protected Function ProcessRequest() As Boolean 
    Dim services As MyWebService 
    services = New MyWebService() 
    Return services.ProcessRequest() 
End Function 

就是我想在這裏做的是asyncrohously調用Web方法的正確方法?

感謝, Javid

回答

1

Web服務類應該通過Web引用來訪問和方法的ProcessRequest應與WebMethod屬性裝飾。

如果您使用Web服務作爲同一項目或其他項目中的普通類,就好像它是普通類庫一樣,您不會通過Web服務器,因此HttpContext.Current對象爲null。