【发布时间】:2012-02-12 08:53:50
【问题描述】:
我能够 Mole WebRequest.CreateUri 以便我可以将请求的主机名替换为另一个。但是,我想改用 Mole Dns.GetAddrInfo,以便我可以保持主机名相同,但要使主机名解析为另一个 IP 地址。
这样,我不必编辑我的主机文件,因为这是一种不太灵活的方法。
有什么建议吗?
谢谢。
编辑
我已经上传了一个示例 Visual Studio 2010 sln 到问题here:
打开sln时,
- 单击服务项目属性的 Web 选项卡中的“创建虚拟目录”按钮。
- 重建解决方案
- 将以下条目添加到
c:\windows\system32\drivers\etc\hosts:127.0.0.1 www.productionserver.com - 在
Tests项目中运行TestMethod1单元测试。
单元测试应该会成功。 - 从
hosts文件中删除条目并重新运行单元测试。
它应该会失败。
我使用反编译器查看了System.ServiceModel.ClientBase<TChannel> 的实现,并注意到它最终会调用System.Net.Dns.GetAddrInfo 来将主机名解析为IP 地址。
我希望这个 sln 足够简单,可以更新和发回(或者只是评论需要完成和\或更改的内容),以便我可以简单地了解解决问题所需的内容。
谢谢。
编辑 2
Moles 目前似乎无法做到这一点。
【问题讨论】:
标签: moles