我遇到了.NET檢測通過Internet Explorer配置的代理設置的問題。.NET代理檢測
我正在編寫一個支持代理的客戶端應用程序,並測試我設置了一個由9個squid服務器組成的數組,以支持HTTP和HTTP的各種身份驗證方法。我有一個腳本,將IE更新爲我選擇的配置(哪個代理,通過「Auto」,PAC或硬編碼進行檢測)。
我已經嘗試了下面3種方法來檢測通過.NET的IE配置。偶然,我注意到.NET拿起了一套錯誤的代理服務器。 IE有正確的設置,如果我用IE瀏覽網頁,我可以看到我通過wireshark打擊了正確的服務器。
WebRequest.GetSystemWebProxy().GetProxy(destination);
GlobalProxySelection.Select.GetProxy(destination);
WebRequest.DefaultWebProxy
這裏有如下提示我:
- 我的腳本設置在網絡服務器PAC文件,並在IE更新配置,然後清除IE的緩存
- .NET似乎在特定的代理配置上「卡住」,並且我必須爲.NET設置另一個配置,以實現更改。有時候它似乎會選擇一些隨機的服務器(我確信它們不是隨機的,只是一組我曾經使用過的服務器,並且存在於某些緩存的PAC文件中)。在中,我將檢查代理的目的地「https://www.secure.com」,我可能會配置IE瀏覽器,因此希望得到「http:// squidserver:18」,相反,它會返回「http :// squidserver:28「(端口18運行NTLM,28無需身份驗證即可運行)。所有的魷魚服務器工作。
- 這似乎並非是在XP,Vista的只有2003年的問題,和Windows 7
- 硬編碼的代理服務器在IE瀏覽器始終工作
- 時間總是可以解決這個問題 - 如果我離開電腦約20或30分鐘後又回來,.NET選取正確的代理設置,就像緩存的PAC腳本過期一樣。
你不能使用UseDefaultProy? – Aliostad 2010-12-13 22:57:34
UseDefaultProxy?無法在線上找到任何東西。 – Dlongnecker 2010-12-13 23:09:04
這有幫助嗎? - > http://stackoverflow.com/questions/1023635/detect-proxy-settings-of-default-web-browser-c/1023978#1023978 – adrianbanks 2010-12-13 23:10:28