今天把我以前做的一个程序升级到了.NET 4.0的版本,里面有一段通过HttpWebRequest获取html的代码,第一次运行特别慢,后续运行就快了。在网上搜了一下,在http://blog.csdn.net/rrrfff/article/details/6170653中找到了原因:.NET4.0中的默认代理是开启的,使用默认代理时,只有等待超时后才会绕过代理,从而导致第一次连接特别慢。(不知道微软为什么要把这个打开)
该文章中也提到了解决方案,一般有两种:
1. 在配置文件中(.config)中添加相应配置,关闭默认代理:
1
<?
xml version="1.0"
?>
2 < configuration >
3 < startup >
4 < supportedRuntime version ="v4.0" sku =".NETFramework,Version=v4.0" />
5 </ startup >
6 < system.net >
7 < defaultProxy enabled ="false" useDefaultCredentials ="false" >
8 < proxy />
9 < bypasslist />
10 < module />
11 </ defaultProxy >
12 </ system.net >
13 </ configuration >
2 < configuration >
3 < startup >
4 < supportedRuntime version ="v4.0" sku =".NETFramework,Version=v4.0" />
5 </ startup >
6 < system.net >
7 < defaultProxy enabled ="false" useDefaultCredentials ="false" >
8 < proxy />
9 < bypasslist />
10 < module />
11 </ defaultProxy >
12 </ system.net >
13 </ configuration >
2. 通过编码的方式手动关闭Proxy。
1
var req
=
WebRequest.Create(
"
http://www.google.com
"
) ;
2 req.Proxy = null ;
2 req.Proxy = null ;