System.Net defaultProxy section in web.config

.net-2.0asp.netiis-6web servicesweb.config

I'm seeing a very strange issue on our live platform that consists of four
webserver Windows Server 2003 boxes sitting in a cluster behind an ISA server
cluster. They are all running IIS 6. We have the need for webservice
requests to be made from a .Net 2.0 webapp to the outside world so we have
utilised the 'defaultProxy' configuration section to specify a proxy for
outgoing requests as below:

<system.net>
  <defaultProxy>
    <proxy proxyaddress="http://cache.mydomain.co.uk:8080" 
           bypassonlocal="true" />
    <bypasslist>
      <add address="monkey.mydomain.com" />
      <add address="www.mydomain.com" />
      <add address="192.168.0.1" />
    </bypasslist>
  </defaultProxy>
</system.net>

As you can see, we have also specified a bypasslist so that webservice calls
within our webapp that makes a call to a different website on the same server
don't go through the proxy.

This works for the most part on our live system throughout the day but as
the system comes under heavy load, the webservice requests that should bypass
the proxy suddenly start to be routed through the proxy and will remain this
way until an App Pool recycle is done. At this point, it goes back to how it
should work. This happens on all four servers; generally within a few
minutes of eachother.

I've outputted the proxy settings that are being used during the webservice
call and I can see the bypasslist when everything is working correctly and
the 'bypassed' property is 'true' for the local webservice url. However,
when it goes wrong I can no longer see the bypasslist and the bypassed
property is 'false'. The proxyaddress property remains the same all the time.

Not sure if it's a symptom or not but the only other very strange thing is
that, when it's working correctly, the proxy object can be cast back to a
WebProxyWrapper class but, when it stops working, it can be cast back to a
WebProxy class.

Has anyone else experienced this issue or does anyone know why this might be
happening?

Best Answer

Hmmm, sounds like a memory pressure or race condition when the configuration is reloaded.

Are you using the latest patches for Windows, IIS and the .NET framework on these machines? I've known Microsoft patches to sometimes include minor fixes that aren't listed in the KB list.

I'd recommend upgrading to Windows Server 2003 R2, .NET Framework v3.5 SP1, plus the subsequent security patches, since this configuration would probably have received the most testing.