【发布时间】:2011-04-22 14:01:00
【问题描述】:
在我的 ASP.NET 应用程序中,我正在使用 WebRequest 类,并且我想使用默认系统代理。这是我正在使用的代码。
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 ;
}
这在作为控制台应用程序的一部分运行时效果很好 - 它正确地选择了系统代理(我假设 PC 上已登录用户的 IE 代理),但是当作为一部分运行时这不起作用在同一台机器上的 ASP.NET 应用程序。没有找到代理。
我认为这是因为 ASP.NET 在系统注册表中没有 IE 代理设置的用户帐户下运行。我试图在 web.config 文件中包含以下内容,但这不起作用。
<system.net>
<defaultProxy>
<proxy usesystemdefault="true" />
</defaultProxy>
</system.net>
我的问题是如何设置 ASP.NET 3.5 应用程序以正确使用 IE 使用的默认代理?
【问题讨论】: