2009-01-19 36 views
4

我有一个相对简单的功能,使用WebClient类执行 HTTPS POST到Web服务器。此代码可靠运行,但在使用EarthLink或AT & T下载加速器功能时遇到 问题。WebClient与代理设置 - 或下载加速器的乐趣

下载加速器通过将拨号连接的代理 设置更改为仅为HTTP协议指定localhost:8080。在这个 配置中,推测HTTPS协议应该不受影响。实际上, 使用Internet Explorer导航到https://www.wellsfargo.com时, 没有错误。

但是,在使用.NET 2.0(或3.5)时,WebClient类无法在此配置中从https://www.wellsfargo.com执行 一个简单的HTTPS GET。

作为一个简单的测试,我执行以下操作:

指定一个先进的局域网代理配置,其中:

HTTP地址:重击:8080

安全地址:securewhacked:8081

在C#中,我调用以下函数:

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

我认为proxyUri应该是“securewhacked:8081”。

相反,proxyUri是“whacked:8080”。

这看起来像.NET“自动”代理使用情况中的一个错误。结果 是我们的软件在打开下载加速器时失败。

有人知道这里发生了什么吗?

我知道客户禁用加速器相对容易, 但我宁愿我们的软件开箱即用,而不要求 用户禁用加速器。

任何建议表示赞赏。

回答

0

在用户(IE)代理设置,机器(WinHTTP)代理设置或两者上设置加速器?如果IE浏览器,你可能想尝试使用proxycfg -u将IE设置导入WinHTTP(因为我相信这是WebClient(和.NET通常)使用的)。