有没有一种方法可以让
例如:在我的 hosts 文件中,我有:
当我尝试在浏览器中加载Bing(包括IE和FF)时,它无法正常加载。
同样地:
为什么System.Net.Dns会遵守hosts文件,但System.Net.WebRequest却忽略它?我需要改变什么来使WebRequest遵守hosts文件?
附加信息:
- 如果我禁用IPv6并将我的IPv4 DNS服务器设置为127.0.0.1,则上述代码按预期工作(失败)。但是,如果我将我的常规DNS服务器添加回备用服务器,则出现意外行为。 - 我已在3个Win7和2个Vista框架上重现了这个问题。唯一的常数是我们公司的网络。 - 我正在使用.NET 3.5 SP1和VS2008。
编辑:
根据@Richard Beier的建议,我尝试了System.Net跟踪。开启跟踪时,WebRequest会像应该的那样失败。但是,一旦我关闭跟踪,行为就会恢复到意外的成功状态。我已在之前相同的机器上以调试和发布模式重新生成了此问题。
编辑2:
这实际上是公司代理给我们带来的问题。我们的解决方案是为我们的测试机器提供自定义代理配置脚本,其中"bing.com"指向DIRECT而不是默认代理。
System.Net.WebRequest
或者 System.Net.WebClient
遵守 hosts
或者 lmhosts
文件?例如:在我的 hosts 文件中,我有:
10.0.0.1 www.bing.com
当我尝试在浏览器中加载Bing(包括IE和FF)时,它无法正常加载。
Dns.GetHostAddresses("www.bing.com")[0]; // 10.0.0.1
WebRequest.Create("http://10.0.0.1").GetResponse(); // throws exception (expected)
WebRequest.Create("http://www.bing.com/").GetResponse(); // unexpectedly succeeds
同样地:
WebClient wc = new WebClient();
wc.DownloadString("http://www.bing.com"); //succeeds
为什么System.Net.Dns会遵守hosts文件,但System.Net.WebRequest却忽略它?我需要改变什么来使WebRequest遵守hosts文件?
附加信息:
- 如果我禁用IPv6并将我的IPv4 DNS服务器设置为127.0.0.1,则上述代码按预期工作(失败)。但是,如果我将我的常规DNS服务器添加回备用服务器,则出现意外行为。 - 我已在3个Win7和2个Vista框架上重现了这个问题。唯一的常数是我们公司的网络。 - 我正在使用.NET 3.5 SP1和VS2008。
编辑:
根据@Richard Beier的建议,我尝试了System.Net跟踪。开启跟踪时,WebRequest会像应该的那样失败。但是,一旦我关闭跟踪,行为就会恢复到意外的成功状态。我已在之前相同的机器上以调试和发布模式重新生成了此问题。
编辑2:
这实际上是公司代理给我们带来的问题。我们的解决方案是为我们的测试机器提供自定义代理配置脚本,其中"bing.com"指向DIRECT而不是默认代理。
ipconfig /flushdns
命令吗? - Arenipconfig /displaydns
显示了主机文件中的条目。 - Nate