小编Nat*_*ate的帖子

System.Net.WebRequest不尊重主机文件

有没有办法获得System.Net.WebRequestSystem.Net.WebClient尊重hostslmhosts文件?

例如:在我的主机文件中,我有:

10.0.0.1  www.bing.com
Run Code Online (Sandbox Code Playgroud)

当我尝试在浏览器(IE和FF)中加载Bing时,无法按预期加载.

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
Run Code Online (Sandbox Code Playgroud)

同理:

WebClient wc = new WebClient();
wc.DownloadString("http://www.bing.com"); //succeeds 
Run Code Online (Sandbox Code Playgroud)

为什么要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追踪.随着跟踪ONWebRequest失败,因为它应该.但是,只要我将跟踪关闭,行为就会恢复到意外的成功.我在调试和发布模式下都在同一台机器上重现了这一点.

编辑2

事实证明这是公司代理给我们带来的问题.我们的解决方案是我们的测试机器的自定义代理配置脚本,其中"bing.com"指向DIRECT而不是默认代理.

.net c# hosts

9
推荐指数
1
解决办法
5638
查看次数

从Access DB中提取OLE对象(pdf)

我们正在将几个旧的Access数据库升级/转换为MS-SQL.其中许多数据库都具有存储PDF文件的OLE对象字段.我正在寻找一种方法来提取这些文件并将它们存储在我们的SQL数据库中.我已经看到类似的问题,回答你如何使用图像文件(jpg,bmp,gif等),但我还没有找到一种适用于PDF的方法.

c# oledb ms-access

5
推荐指数
1
解决办法
7692
查看次数

标签 统计

c# ×2

.net ×1

hosts ×1

ms-access ×1

oledb ×1