我有一个相对简单的特性,它使用WebClient类向web服务器执行HTTPS发布。此代码工作可靠,但在使用EarthLink或AT&T下载加速器功能时遇到问题。
下载加速器的工作方式是将拨号连接的代理设置更改为只为HTTP协议指定localhost:8080。在此配置中,假定HTTPS协议不受影响。事实上,当使用Internet导航到https://www.wellsfargo.com时,没有错误。
但是,在使用.NET 2.0 (或3.5)时,WebClient类无法在此配置中执行来自https://www.wellsfargo.com的简单HTTPS。
作为一个简单的测试,我做了以下工作:
指定高级LAN代理配置,其中:
地址:8080
安全地址:securewhacked:8081
在C#中,我调用以下函数:
IWebProxy defaultWebProxy = WebRequest.DefaultWebProxy;
Uri proxyUri = defaultWebProxy.GetProxy("https://www.wellsfargo.com");我认为proxyUri应该是“安全的:8081”。
相反,proxyUri是“8080”。
这似乎是.NET“自动”代理使用中的一个bug。结果是我们的软件在打开下载加速器时失败了。
有人知道这是怎么回事吗?
我知道,对于客户来说,禁用加速器相对容易,但我宁愿我们的软件不需要用户禁用加速器就可以开箱工作。
如有任何建议请见谅。
发布于 2009-01-19 09:56:57
加速器是在用户的(IE)代理设置、机器(WinHTTP)代理设置上设置的,还是两者都设置?如果是IE,您可能会尝试使用proxycfg -u将IE设置导入WinHTTP (因为我相信这是WebClient (和.NET一般)使用的)。
https://stackoverflow.com/questions/456741
复制相似问题