Tags

, , ,

一个简单的从URL获取XML文档的C#模块,在客户那里始终Timeout

因为这个模块代码量实在很小,也没有采用什么加密,再加上自己这测试正常,基本断定是客户网络配置有问题,检查防火墙,360一类的坑爹软件无果(上一次类似的问题是360干的好事)

但诡异的事情是用客户浏览器直接访问URL返回正确。于是上网各种查资料,发现这很多人问题出在两个属性

[blockquote source=”HttpWebRequest timeout”]

HttpWebRequest.ReadWriteTimeout 属性

HttpWebRequest.Timeout 属性

[/blockquote]

但各种设置后无果,各种查阅MSDN,偶然看到这样一句话

[blockquote source=”Proxy”]本地计算机或应用程序配置文件可能指定使用默认代理。 如果指定了 Proxy 属性,则 Proxy 属性中的代理设置会重写本地计算机或应用程序配置文件,并且 HttpWebRequest 实例将实用指定的代理设置。 如果配置文件中未指定代理并且未指定 Proxy 属性,则 HttpWebRequest 类使用从本地计算机上的 Internet Explorer 中继承的代理设置。 如果 Internet Explorer 中没有代理设置,请求会直接发送到服务器。[/blockquote]

眼前一亮,果断设置[blockquote source=”proxy属性”]request.Proxy = null;[/blockquote]

果然问题解决。贴上最后的代码:
[crayon-5354acf3658cd578569164/]