2

I've create a regular old ASMX web service in ASP.NET and added SoapDocumentMethod(OneWay = true)] to the function call as I've read this is supposed to make the call Asynchronous. However I call this in my code and it definitely does not make the call asynchronous, my page just sits there waiting for the function to finish working. What gives?

[SoapDocumentMethod(OneWay = true)]
[WebMethod(EnableSession = true)]
public void UpdateAccounts()
{
 //do work
}

//call the function
GlobalServices service = new GlobalServices();
service .UpdateAccounts()
Hungry Beast
  • 3,677
  • 7
  • 49
  • 75

2 Answers2

3

You still have to make the call using the Async method. You should make the call to service.UpdateAccountsAsync() in this case.

Erich
  • 657
  • 5
  • 6
  • Except that the documentation for OneWay states that the web service will return an HTTP status code 202 immediately, prior to executing the service method, so I don't think making the service function asynchronous is going to help. – Robert Harvey Oct 09 '09 at 02:55
  • This is my understanding of how it works, or how it's supposed to work. – Hungry Beast Oct 09 '09 at 02:56
0

Are you returning a value? The documentation for OneWay states that "fire and forget" web methods cannot return a value or have out parameters.

http://msdn.microsoft.com/en-us/library/system.web.services.protocols.soapdocumentmethodattribute.oneway(VS.80).aspx

Robert Harvey
  • 178,213
  • 47
  • 333
  • 501