解决WebClient或HttpWebRequest首次连接缓慢问题
【編程環境】Visual Studio 2010, NET4.0
【開發語言】C#, 理論上VB.NET等依賴.NET Framework框架的語言均受此影響
【問題描述】
使用HttpWebRequest抓取網頁內容,但首次請求總是莫名奇妙的阻塞在Request.GetResponse();上,不過一旦這次請求成功,后續的操作就很快了(如果是針對同一對象)。
相同的代碼編譯在NET3.5環境中卻一切正常,而在NET4.0環境中執行就出這問題,難道是一個BUG?
【解決方案】
在配置文件中(.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中的默認代理是開啟的,而我并沒有設置!故只有等待超時后才會繞過代理,這就阻塞了.
【參考資料】
"It's not set at all in app.cong or machine.config. Hmm. If I'm reading the
MSDN docs right, the default for defaultProxy.enabled is TRUE if the element
isn't specified at all. That would be consistent with my observations.
"
http://msdn2.microsoft.com/en-us/library/kd3cf2ex(VS.80).aspx
【問題引申】
如果在其它版本的.NET環境中遇到類似問題,不妨嘗試WebClient.Proxy = null;或HttpWebRequest.Proxy = null.
【總結】
問題往往出于不注意,我們要多加'小心'.
希望能幫到您!
轉載于:https://www.cnblogs.com/tianciliangen/p/5846699.html
總結
以上是生活随笔為你收集整理的解决WebClient或HttpWebRequest首次连接缓慢问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vector 搜索
- 下一篇: Android Studio开发Recy