I’ve done a lot of web services during the last couple of years and I simply love Service Oriented Architecture using SOAP. The power of using services as a means to create large connected systems are enormous but sometimes it can be a performance bottleneck.
The SOAP protocol in ASP.NET is defined as a response/request operation even if the method returns a void type. That means that the requesting client waits until it gets a response from the web service and that can take a relative long time. For simple logging applications or other simple SOAP calls where you aren’t interested in waiting for the response, you can achieve performance gains by using the SoapDocumentMethod attribute on the web service methods.
What it does is that it instantly returns HTTP status code 200 OK to the requesting client, so it doesn’t have to wait for the entire request to finish processing and it’s built directly into the ASP.NET engine. Here is how to do it:
[WebMethod, SoapDocumentMethod(OneWay = true)]
public void LogError(string errorMessage)
It’s not exactly rocket science but it can remove a potential bottleneck.