c# - 在 localhost 上获取 "remote server cannot be resolved"不会被 defaultProxy 修复?

标签 c# asp.net system.net defaultproxy

情况是这样的,当我开始工作时(使用 ISA 服务器来connect) 我得到“无法解析远程服务器”所以我将这些行添加到 web.config

<system.net>
  <defaultProxy>
   <proxy
    usesystemdefault="False"
    proxyaddress="http://localhost"
    bypassonlocal="True"
     />
   <bypasslist>
    <add address="[a-z]+\.flickr\.com\.+" />
   </bypasslist>

  </defaultProxy>
 </system.net>

返回:System.Net.WebException:远程服务器返回错误:(404) Not Found。 什么地方出了错?谢谢

最佳答案

这里有两种可能的情况:

1:如果您正在构建客户端应用程序(例如控制台或 WinForms)并想要访问 http://localhost在没有任何中间代理的情况下使用 WebClient 或 HttpWebRequest,则 bypassonlocal="True" 应该可以完成此操作。换句话说,您的 app.config 应如下所示:

<defaultProxy>
   <proxy
    usesystemdefault="False"
    bypassonlocal="True"
     />
  </defaultProxy>
 </system.net>

2:但是,如果您想让您的 ASP.NET 应用程序(在 http://localhost 上运行)能够使用代理或不使用代理正确解析 URI,那么您需要设置在您的 web.config 中正确地代理信息(或在 machine.config 中,这样您就不必更改应用程序的 web.config),因此 ASP.NET 将知道您正在运行代理或不运行代理。像这样:

首页:

<defaultProxy>
   <proxy
    usesystemdefault="False"
    bypassonlocal="True"
     />
  </defaultProxy>
 </system.net>

工作:

<defaultProxy>
   <proxy
    usesystemdefault="False"
    proxyaddress="http://yourproxyserver:8080"
    bypassonlocal="True"
     />
  </defaultProxy>
 </system.net>

也可以使用代理自动检测,从注册表中获取设置等。但我一直回避服务器应用程序的这些方法……太脆弱了。

顺便说一句,如果你发现一切都配置正确,但你仍然得到错误,我建议的第一件事是编写一个快速测试,在你的 WebClient/HttpWebRequest 调用之前手动设置代理,而不是依赖在配置上做到这一点。像这样:

WebProxy proxyObject = new WebProxy("http://proxyserver:80/",true);
WebClient wc = new WebClient();
wc.Proxy = proxyObject;
string s = wc.DownloadString ("http://www.google.com");

如果请求没有正确通过您的工作代理,即使您正在使用代码,即使您的代码中正确配置了代理,那么代理本身也可能是问题所在。

关于c# - 在 localhost 上获取 "remote server cannot be resolved"不会被 defaultProxy 修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1780286/

相关文章:

c# - imageList.Draw 不会以不同的尺寸绘制?

c# - C# 中的数组切片

c# - Youtube API v3 .NET 集成

javascript - 获取 C# 中由 javascript 创建的隐藏字段

c# - w3wp 诊断报告 : List of modules compiled in debug mode

linux - 在 Linux 上使用 .net core 更改 IP 地址

c# - 如何更改与 MySQLConnector/Net 中的连接关联的时区?

asp.net - Azure 上托管的 ASP.NET Core 应用程序中的 Redis 连接错误

c# - 如何清除 System.Net 客户端 DNS 缓存?

c# - 如何获取 MultipartFormDataContent 的字符串表示形式