Hello,
I have a (C#) web service being consumed by a high volume "asp classic"
site. It worked perfectly until I tried consuming a second web service
from the first web service. Both services are very high-performing on
their own, make inexpensive database calls and use good caching to
avoid excess database hits. However, when service 1 makes a call to
service 2, I get several timeout errors per minute (error is "The
operation has timed-out"). The timeout is set to 2500 milliseconds,
and the call normally takes a fraction of that amount of time, so I'm
not sure what is causing the timeouts. Incidentally, if the asp
classic pages make the two service calls separately (i.e. the asp page
calls service 1, then calls service 2), there are no timeout errors. I
have the services running on separate machines (and the asp site is on
separate servers as well); I've set the HttpWebRequest keepAlive
property to false in the Reference.cs; I've increased the maxconnection
value in the machine.config on the server for service 1. These changes
helped keep the service from coming to a grinding halt, but I still
haven't found any solution for the timeout problem.
Does anyone have any suggestions? I haven't seen a whole lot of
information out there regarding service-to-service calls, so I'm not
sure if this is a bad idea or not. It seems logical from an
architecture standpoint that you might have a single "uber" web service
that manages communication with other web services, then delivers all
necessary data to the client; however, in practice I'm having a heck of
a time getting it to be performant.
Any recommendations would be greatly appreciated.
Thanks,
Barb