解决WebClient或HttpWebRequest首次连接缓慢问题

 使用HttpWebRequest抓取网页内容,但首次请求总是莫名奇妙的阻塞在Request.GetResponse();上,不过一旦这次请求成功,后续的操作就很快了(如果是针对同一对象)。

相同的代码编译在NET3.5环境中却一切正常,而在NET4.0环境中执行就出这问题,难道是一个BUG?

【编程环境】Visual Studio 2010, NET4.0

【开发语言】C# 

【解决方案】

在配置文件中(.config)中添加配置节:

<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <system.net>
    <defaultProxy
        enabled="false"
        useDefaultCredentials="false" >
      <proxy/>
      <bypasslist/>
      <module/>
    </defaultProxy>
  </system.net>
</configuration>

   

.NET4.0中的默认代理是开启的,而我并没有设置!故只有等待超时后才会绕过代理,这就阻塞了.

如果在其它版本的.NET环境中遇到类似问题,不妨尝试WebClient.Proxy = null;或HttpWebRequest.Proxy = null.

posted @ 2014-07-05 22:10  黑冰.org  阅读(522)  评论(1)    收藏  举报