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)
{
DoSlowOperation(errorMessage);
}
It’s not exactly rocket science but it can remove a potential bottleneck.
Tag:
Add to Del.icio.us | Digg | Reddit | Furl
Mads Kristensen currently works as a Senior Developer at Traceworks located
in Copenhagen, Denmark. Mads graduated from Copenhagen Technical Academy with a multimedia degree in
2003, but has been a professional developer since 2000. His main focus is on ASP.NET but is responsible for Winforms, Windows- and
web services in his daily work as well. A true .NET developer with great passion for the simple solution.