views:

747

answers:

1

I have a relatively simple feature that uses the WebClient class to perform an HTTPS POST to a web server. This code works reliably but encounters problems when using the EarthLink or AT&T download accelerator feature.

The download accelerator works by changing the dial-up connection's proxy settings to specify localhost:8080 for the HTTP protocol only. In this configuration, presumably the HTTPS protocol should be unaffected. In fact, when using Internet Explorer to navigate to https://www.wellsfargo.com, there is no error.

However, when using .NET 2.0 (or 3.5), the WebClient class fails to perform a simple HTTPS GET from https://www.wellsfargo.com in this configuration.

As a simple test, I do the following:

Specify an advanced LAN proxy configuration where:

HTTP address: whacked:8080

Secure address: securewhacked:8081

In, C# I call the following functions:

            IWebProxy defaultWebProxy = WebRequest.DefaultWebProxy;
            Uri proxyUri = defaultWebProxy.GetProxy("https://www.wellsfargo.com");

I would expect that proxyUri should be "securewhacked:8081".

Instead, proxyUri is "whacked:8080".

This seems like a bug in the .NET "automatic" proxy usage. And the result is that our software fails when the download accelerator is turned on.

Does anyone know what is going on here?

I know that it's relatively easy for customers to disable the accelerator, but I would rather our software work out of the box without requiring the user to disable the accelerator.

Any suggestions appreciated.

A: 

Is the accelerator set on the user's (IE) proxy setting, the machines (WinHTTP) proxy setting, or both? If IE, you might like to try using proxycfg -u to import the IE settings into WinHTTP (since I believe this is what WebClient (and .NET generally) uses).

Marc Gravell