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

2024-01-19

有没有办法获得System.Net.WebRequest or System.Net.WebClient尊重hosts or lmhosts file?

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

10.0.0.1  www.bing.com

当我尝试在浏览器(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

相似地:

WebClient wc = new WebClient();
wc.DownloadString("http://www.bing.com"); //succeeds 

为什么会System.Net.Dns尊重主机文件,但是System.Net.WebRequest忽略它?我需要更改什么才能使 WebRequest 尊重主机文件?

附加信息:

  • 如果我禁用 IPv6 并将 IPv4 DNS 服务器设置为 127.0.0.1,则上述代码将按预期工作(失败)。但是,如果我将正常的 DNS 服务器添加回来作为备用服务器,意外的行为就会恢复。
  • 我已经在 3 个 Win7 和 2 个 Vista 机器上重现了这个。唯一不变的是我公司的网络。
  • 我正在使用 .NET 3.5 SP1 和 VS2008

Edit

根据@Richard Beier的建议,我尝试了System.Net追踪。有追踪ON the WebRequest失败了,正如它应该的那样。然而,一旦我转向追踪OFF行为会恢复到意外的成功。我已经在调试和发布模式下在与以前相同的机器上重现了这一点。

Edit 2

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


我认为@Hans Passant 已经发现了这里的问题。看来您在 IE 中设置了代理。

Dns.GetHostAddresses("www.bing.com")[0]; // 10.0.0.1  

这是有效的,因为您要求操作系统获取 IP 地址www.bing.com http://www.bing.com

WebRequest.Create("http://www.bing.com/").GetResponse(); // unexpectedly succeeds

这是有效的,因为您要求框架从服务器名称获取路径。该框架使用与 IE 前端相同的引擎和设置,因此,如果您的公司已通过 GPO 指定您使用公司代理服务器,则该代理服务器将解析 IP 地址www.bing.com http://www.bing.com而不是你。

WebRequest.Create("http://10.0.0.1").GetResponse(); // throws exception (expected) 

此方法有效/失败,因为您已要求框架从特定服务器(通过 IP)获取网页。即使您设置了代理,该代理仍然无法连接到该 IP 地址。

我希望这个对你有用。

Jonathan

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

System.Net.WebRequest 不尊重主机文件 的相关文章

  • C++ 天花板函数的奇怪结果

    我一直在尝试天花板功能并得到一些奇怪的结果 如果我对十进制数乘以百执行 ceil 运算 我会得到一定的结果 但是 如果我直接对该乘法的结果执行 ceil 我会得到完全不同的输出 另一个问题是 这些不同的结果仅发生在某些数字上 任何帮助 将不
  • 子进程中的变量修改

    我正在研究科比和奥哈拉伦的作品Computer Systems A Programmer s Perspective 练习 8 16 要求程序的输出如下 我更改了它 因为他们使用了一个你可以在他们的网站上下载的头文件 include
  • Visual Studio 2013 Intellisense 不会将枚举类型放在方法参数的位置

    例如 我有以下代码 namespace VS2013 EnumTypes class Program enum SomeEnum One Two static void SomeMethod SomeEnum someEnum some c
  • 如何通过C#在SQLite数据库中写入变量DateTime值?

    我很新C and SQLite数据库并有一些变量存储在 SQLite 数据库中TimeStamp 这是我的代码 DateTime now DateTime Now m dbConnection new SQLiteConnection Da
  • 用C#发送USSD?

    我想编写一个在 Windows Mobile 6 上运行的简单 C 应用程序 它可以发送 USSD 消息 有没有任何图书馆可以帮助我做到这一点 或者是否有任何示例解释如何使用线路发送USSD http msdn microsoft com
  • 更新 OSX 命令行工具 6.3 后缺少 C++ 标头 <__debug>

    从 App Store 更新到 Command Line Tools 6 3 后 程序包括
  • const_iterators 更快吗?

    我们的编码指南更喜欢const iterator 因为它们比正常的要快一点iterator 当您使用时 编译器似乎会优化代码const iterator 这真的正确吗 如果是的话 内部到底发生了什么使得const iterator快点 编辑
  • 有没有办法关闭 Hangfire 使用 Serilog 进行的日志记录?

    有没有办法关闭 Hangfire 使用 Serilog 进行的日志记录 我们正在使用我们自己的抽象 我不希望在使用 Serilog 时来自 Hangfire 记录器的所有额外噪音 INIT call under web project na
  • WCF 客户端返回空数组 - XML 响应似乎正常

    我正在尝试为我们的 Intranet 上托管的 Web 服务创建一个简单的 WCF 客户端 C 使用 Fiddler 和 SoapUI 我可以看到请求和响应似乎正常 但是当我运行代码时返回一个空数组 我会尝试只粘贴相关的行 但会是很多东西
  • 泛型类上的 DebuggerDisplay

    我在应用时遇到问题DebuggerDisplay泛型类的属性 DebuggerDisplay foo class Foo DebuggerDisplay Bar t class Bar
  • 模板“内联”函数的静态局部变量[重复]

    这个问题在这里已经有答案了 static的局部变量inline如果我的理解是正确的 C 中的函数保证像单个全局变量一样存在 如果inline函数是一个模板 编译器可以在哪里生成该函数的多个版本 下面这篇文章应该很好地回答你的问题 http
  • 使用 INF 文件 C++ 以编程方式安装驱动程序

    这里有人可以告诉我如何安装第 3 方设备驱动程序吗 如果提供了所有必需的文件 即 inf 文件 sys 等 则以编程方式进行 这 该解决方案应运行的最低操作系统是Windows2000 我尝试复制 inf文件放入Win文件夹 INF文件夹和
  • C++ fill() 与 uninitialized_fill()

    您好 我是初学者 我想知道容器的 fill 和 uninitialized fill 之间的区别 我在谷歌上进行了快速搜索 但没有得到很好的答案 有人可以帮助我吗 fill 将值 使用赋值运算符 分配给已构造的对象 uninitialize
  • 尝试缓冲区溢出

    我正在尝试使用缓冲区溢出来更改函数的结果 以使用以下代码更改堆栈上的结果 include
  • 谷歌基准迭代的意义是什么?

    我正在使用 Google Benchmark 来测量某些代码的执行时间 例如 我编写了以下代码来测量其执行时间性能 include
  • C++头文件问题

    我在处理类时尝试了一些 C 代码 这个问题出现在我身上 并且让我有点烦恼 我创建了一个包含类定义的头文件和一个包含实现的 cpp 文件 如果我在不同的 cpp 文件中使用此类 为什么要包含头文件而不是包含类实现的 cpp 文件 如果我包含类
  • 通过 MVC 将数据写入数据库的最佳方法是什么?

    我正在使用 MVC 和 EF Core 开发一个家庭作业项目 我正在寻找将数据写入数据库的最佳方法 我是初学者 有两张桌子 Predbilje ba 报名 和Seminari 研讨会 public class Predbilje ba Ke
  • 如何将这个基于代码的 WPF 工具提示转换为 Silverlight?

    以下工具提示代码适用于WPF 我正在努力让它发挥作用银光 但它给了我这些errors TextBlock does not contain a definition for ToolTip Cursors does not contain
  • Lambda 按值捕获和“mutable”关键字

    关键词的必要性mutable在 lambda 中 是造成极大混乱的根源 考虑代码 int x 10 function
  • 具有两个表的谓词构建器

    A Party可以有一个或多个Contact对象 我想选择全部Parties谁的街道名称包含特定关键字 如果我只想搜索Party我可以使用下面的代码 但我如何扩展它来搜索Contact public IQueryable

随机推荐

  • 如何在 onStart() 方法中从 Firebase 远程配置实现 fetch() ?

    我正在尝试实现调用 Firebase 远程配置fetch 中的方法onStart 我以为这会很容易 但经过几次尝试后却发现并非如此 首先 我想尽快检查新的配置值用户打开应用程序 and 超出缓存过期时间 这就是我选择的原因onStart 方
  • 如何禁用/关闭/刷新 couchdb 缓存

    我有一个列表 其中对文档进行了一些基本身份验证 我遇到的问题是列表正在缓存 因此除非我更新修订 ID 否则用户将看不到他们具有访问权限 如何显示非缓存列表 if req userCtx name doc permissions owner
  • 最小化二分图中的交叉数

    在为不相关的东西绘制图表时 我遇到了以下算法问题 我们有一个二部图的平面图 其中不相交的集合按列排列 如图所示 我们如何重新排列每列内的节点以使边缘交叉的数量最小化 我知道这个问题对于一般图来说是 NP 困难的 link http en w
  • 调试使用 ES6 模块的 JavaScript 代码

    TL DR 如何从调试器访问 ES 模块中定义的变量 函数 名称 更多背景信息 我是一位经验相对丰富的 JavaScript 程序员 但对模块还是个新手 我已经按照 MDN 上的教程进行操作 https developer mozilla
  • CUDA 就地转置错误

    我正在实现一个 CUDA 程序来转置图像 我创建了 2 个内核 第一个内核进行了异位转置 并且适用于任何图像尺寸 然后我创建了一个用于方形图像就地转置的内核 但是 输出不正确 图像的下三角形被转置 但上三角形保持不变 生成的图像在对角线上有
  • 如何在 android room 和 rxjava 2 中插入数据并获取 id 作为输出参数?

    插入查询 Insert onConflict OnConflictStrategy REPLACE long insertProduct Product product product id is auto generated 查看模型 p
  • tvos UISegmentedControl 焦点样式不改变

    我想在 tvOS 中突出显示 UISegmentedControl 时更改其背景颜色 Normally Segment display like following When change focus for change selected
  • 训练神经网络时出现极小或 NaN 值

    我正在尝试在 Haskell 中实现神经网络架构 并在 MNIST 上使用它 我正在使用hmatrix线性代数包 我的训练框架是使用pipes包裹 我的代码可以编译并且不会崩溃 但问题是 层大小 例如 1000 小批量大小和学习率的某些组合
  • 如何将 DATETIME 转换为 mysql 中的 DATE?

    我的查询是这样的 我有一堆条目 我想按日期对它们进行分组 但我的数据库中没有日期 而是有一个日期时间字段 我该怎么办 select from follow queue group by follow date cast follow dat
  • 反序列化 JSON 对象的一部分并将其序列化回来,其余属性保持不变

    我有一些 JSON 想要将其反序列化为 C 类的实例 但是 该类并不具有与原始 JSON 匹配的所有字段 属性 我希望能够修改类中的属性值 然后将其序列化回 JSON 并且原始 JSON 中的剩余字段和属性仍然完好无损 例如 假设我有以下
  • 强制 TkInter Scale 滑块捕捉到鼠标

    当 GUI 有 TkInter 时Scale当他们单击刻度上的某个位置时 默认行为似乎是沿着刻度向鼠标方向滑动滑块 然后意外地经过鼠标 我想要的是让滑块在用户单击滑块上的任意位置时始终跳转到并保持连接到用户的鼠标点 如果他们单击刻度上的特定
  • Int 和 Integer 有什么区别?

    在 Haskell 中 a 和 a 有什么区别Int and an Integer 答案记录在哪里 Integer 是任意精度 类型 它将保存任何数字 no 无论多大 直到极限 你机器的内存 这意味着你从来没有 算术溢出 在另一 手也意味着
  • 重写 Wildfly 引擎

    我想知道是否可以在没有任何第三方库的情况下使用 Wildfly 应用程序服务器的重写引擎 我尝试过使用重写阀 https help openshift com hc en us articles 202398810 How to redir
  • Rails 控制器中的实例和类变量

    我是 Rails 和 ruby 的新手 我正在研究类和实例变量的概念 我理解其中的区别 但是当我在 Rails 中使用控制器进行尝试时 它让我感到困惑 我所做的是在类方法之外声明一个类和实例变量 class BooksController
  • 有没有办法强制使用 Zend_Auth 进行身份验证?

    我正在使用 Zend Auth 和 cookie 会话持久性 我似乎无法弄清楚如何强制使用此类进行身份验证 有没有办法强制 Zend Auth 相信它已经作为用户进行身份验证 Zend Auth getInstance gt getStor
  • 直接自引用导致循环超类问题 JSON

    我尝试了在搜索时发现的几件事 但没有任何帮助 或者我没有正确实现它 我收到错误 Direct self reference leading to cycle through reference chain io test entity bo
  • 创建覆盖 ImageView 动画 Google 地图

    我正在尝试使我的叠加图像执行以下操作 地图的 onClick onDrag 在地图中间显示恒定图像 这是一个引脚 onTouchUp 将标记图像更改为加载标记和一次数据 加载完整更改将图像加载到带有文本的新图像 这是与我的问题非常相似的解决
  • 如何让我的自定义帐户类型显示在 Android 联系人应用程序中?

    我已经创建了一个自定义帐户类型 并且可以在 android ContactsContract ContentProvider 中成功创建该类型的联系人 但我在弄清楚如何在默认联系人应用程序中编辑联系人时显示我的自定义帐户标签和图标时遇到了很
  • 为什么 git 将我的分支名称前缀大写?

    我有一组非常简单的 git 命令 这会导致一些奇怪的行为 显示我当前的本地分支机构 并查看我在release beta1 git branch develop master release beta1 创建一个bugfix somefeat
  • System.Net.WebRequest 不尊重主机文件

    有没有办法获得System Net WebRequest or System Net WebClient尊重hosts or lmhosts file 例如 在我的主机文件中 我有 10 0 0 1 www bing com 当我尝试在浏览