gpt4 book ai didi

c# - 如何在 ASP.NET 应用程序中使用 Internet Explorer 中使用的代理

转载 作者:太空宇宙 更新时间:2023-11-03 11:37:35 25 4
gpt4 key购买 nike

在我的 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 使用的默认代理?

最佳答案

没有系统范围的默认代理。因此您只能使用当前用户的配置。如果没有这样的配置,你就有问题了。

您可以尝试在具有代理配置的用户下运行 ASP.NET 应用程序的应用程序池,或者查看组策略,AFAIK 确实支持设置系统范围的代理。

关于c# - 如何在 ASP.NET 应用程序中使用 Internet Explorer 中使用的代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5756217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com