【发布时间】:2010-10-02 04:29:47
【问题描述】:
我有一个比较简单的功能就是使用WebClient类来执行 到 Web 服务器的 HTTPS POST。此代码工作可靠但遇到 使用 EarthLink 或 AT&T 下载加速器功能时出现问题。
下载加速器通过更改拨号连接的代理来工作 设置以指定 localhost:8080 仅用于 HTTP 协议。在这个 配置,想必HTTPS协议应该不受影响。实际上, 使用 Internet Explorer 导航到 https://www.wellsfargo.com 时,出现 没有错误。
但是,当使用 .NET 2.0(或 3.5)时,WebClient 类无法执行 在此配置中来自 https://www.wellsfargo.com 的简单 HTTPS GET。
作为一个简单的测试,我执行以下操作:
指定高级 LAN 代理配置,其中:
HTTP 地址:whacked:8080
安全地址:securewhacked:8081
在C#中我调用了以下函数:
IWebProxy defaultWebProxy = WebRequest.DefaultWebProxy;
Uri proxyUri = defaultWebProxy.GetProxy("https://www.wellsfargo.com");
我希望 proxyUri 应该是“securewhacked:8081”。
相反,proxyUri 是“whacked:8080”。
这似乎是 .NET “自动”代理使用中的一个错误。结果 是我们的软件在打开下载加速器的时候就失效了。
有人知道这里发生了什么吗?
我知道客户禁用加速器相对容易, 但我宁愿我们的软件开箱即用,而不需要 用户禁用加速器。
任何建议表示赞赏。
【问题讨论】: