4

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

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

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

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

指定高级 LAN 代理配置,其中:

HTTP地址:重击:8080

安全地址:securewhacked:8081

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

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

我希望 proxyUri 应该是“securewhacked:8081”。

相反,proxyUri 是“重击:8080”。

这似乎是.NET“自动”代理使用中的一个错误。结果是打开下载加速器时我们的软件失败了。

有谁知道这里发生了什么?

我知道客户禁用加速器相对容易,但我希望我们的软件开箱即用,无需用户禁用加速器。

任何建议表示赞赏。

4

1 回答 1

0

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

于 2009-01-19T09:56:57.510 回答