2
在我的ASP.NET應用程序中,我使用的是WebRequest類,我想使用默認系統代理。這是我正在使用的代碼。如何在ASP.NET應用程序中使用Internet Explorer中使用的代理
private static bool CheckIfUriIsReachable(string uri)
{
bool reachable = true;
var request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "HEAD";
var proxy = WebRequest.GetSystemWebProxy();
proxy.Credentials = CredentialCache.DefaultCredentials;
request.Proxy = proxy;
HttpWebResponse response = null;
try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException)
{
reachable = false;
}
finally
{
if (response != null)
{
response.Close();
}
}
return reachable ;
}
時作爲控制檯應用程序的一部分運行該工作得很好 - 它正確地拿起系統代理(我假定IE代理服務器的登入的用戶在PC上),然而,這不起作用當在同一臺機器上作爲ASP.NET應用程序的一部分運行時。沒有找到代理。
我認爲這是因爲ASP.NET在系統註冊表中沒有IE代理設置的用戶帳戶下運行。我試圖在web.config文件中包含以下內容,但這不起作用。
<system.net>
<defaultProxy>
<proxy usesystemdefault="true" />
</defaultProxy>
</system.net>
我的問題是如何設置一個ASP.NET 3.5應用程序來正確使用IE使用的默認代理?
這是完全正確的。我們使用Windows身份驗證,並使用代理設置來設置該機器上的每個用戶帳戶。更好的解決方案是應用程序池級別的一個帳戶。 – 2011-04-22 16:32:40