Link to home
Start Free TrialLog in
Avatar of jklo
jklo

asked on

Help! Explicit timeouts not being honored on Web Services on Vista Ultimate, IIS7

I've been struggling with this issue for quite some time, and cannot seem to find the right solution.

I have two classic ASP.NET applications, one of the applications hosts a bunch of web services.  The other consumes the web services.  One of the methods requires a long time to execute and runs synchronously.

On IIS7 and Vista Ultimate only (works on XP and Server 2003 w/ IIS6), the connection to the web service timesout.  I've explictly set the executionTimeout on the httpRuntime element in the web.config to 3200 (1 hour). and in the instatiation of the proxy for the web service itself I set the timeout to infinity (i've tried 1 hour as well, with no luck).

Each time I try to execute a method that takes longer the 110 seconds, the connection to the web service times out.  Anyone have any suggestions about what steps that I could take to resolve this, other that redesign the system to execute the web service asynchronously.

One thing to note, if I use the ASP.NET development web server which is part of Visual Studio 2005, the timeout issue disappears, and everything works fine.  So I'm convinced this is specifically an issue with IIS7.  I have to run on Windows Vista, as the web service interfaces with a remote compiler which needs the Vista API to link with as well as side by side assembly support, which leaves Orcas and Windows 2008 out for now.
Avatar of cj_1969
cj_1969
Flag of United States of America image

it could be a client side timeout waiting for the response as oppsed to the web server that is timeing out and terminating the session ... see if there are any paramters that you can set on the requesting side.
Avatar of jklo
jklo

ASKER

The only client side timeout is that in the instantion of the Proxy object:

<code>
public static void ConfigureProxy(SoapHttpClientProtocol proxy)
{
           if (proxy == null)
                      throw new ArgumentNullException("proxy", "The SoapHttpClientProtocol parameter 'proxy' can not be null in a call to ProxyUtil.SetNetworkCredential()");

           // Add a NetworkCredential instance to CredentialCache.
           // Negotiate for NTLM or Kerberos authentication.
           CredentialCache cache = new CredentialCache();
           cache.Add(new Uri(proxy.Url), "Negotiate", new NetworkCredential(USERNAME, PASSWORD, DOMAIN));

           //configure the proxy with the credential cache, suggest pre-auth, and set the timeout to one hour
           proxy.Credentials = cache;
           proxy.PreAuthenticate = true;

            proxy.Timeout = System.Threading.Timeout.Infinite;
}
</code>

It's clearly not the client itself timing out as the client application is able to catch the exception and display it. If the client were timing out, I would suspect an error that I wouldn't be able to catch on the client side, except through some external module.
ASKER CERTIFIED SOLUTION
Avatar of cj_1969
cj_1969
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Check out this page .. it has a lot of references to timeout values and sounds similar to your problems ... http://forums.asp.net/p/1101560/1807061.aspx 
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial