C# - Stress testing a Web Service - Timeout

Hi,

I have a web service that is query'ing a database. The query takes a few seconds to run.

I'm stress testing my web service using a couple of threads.

If the interval is too short between the threads that execute the web service, I get the following exception.

System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> Error fetching *MyWebserviceMethods*.
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)

Any ideas why this is happening? I thought web services can handle some load.

Thank you.
EndelmAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
ventaurConnect With a Mentor Commented:
I think you'll need to call the web service method asynchronously to avoid the problem.
private void MyMethodCompleted(Object sender, localhost.MyMethodCompletedEventArgs Completed) {
  // Do something once the web service method, "MyMethod", has completed.
}
 
...
 
// Create the web service and attach an event for the method's completion.
MyWebserviceMethods Service = new localhost.MyWebserviceMethods();
Service.MyMethodCompleted += new localhost.MyMethodCompletedEventHandler(MyMethodCompleted);
 
// Call the web service method asynchronously.
Service.MyMethodAsync();

Open in new window

0
 
ventaurCommented:
How are you calling the web service method?
0
 
EndelmAuthor Commented:
I'm using a while loop and 3 threads.

I execute the 3 threads at the same time.....then sleep for 1 sec.....then run the 3 threads again, etc.

If I set the threads to sleep for 5 or 10 seconds I don't get this error.

The execution of each web service call takes a few seconds.

Thank you.
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
EndelmAuthor Commented:
Interesting.

What does this do and how is it different from what I was doing?

Thank you! :)
0
 
ventaurCommented:
If you call your web service method's xxxAsync version, it will automatically occur on its own thread; thus, preventing blocking. However, if you wish to perform any action(s) upon the completion of the method call, you have to subscribe to its xxxCompleted event.
0
 
adam_ingenitiCommented:
So in other words, "asynchronous" means that each call to the web service will occur on its own thread, and thus should not interfere with each other.
0
 
ventaurCommented:
You pretty much have it with that statement.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.