【问题标题】:Debugging ASP.NET application in a networkless environment在无网络环境中调试 ASP.NET 应用程序
【发布时间】:2012-09-08 15:12:13
【问题描述】:

我得到一个

Stack Trace:

[SocketException (0x2af9): No such host is known]
   System.Net.Dns.GetAddrInfo(String name) +471

尝试在未连接网络接口的笔记本电脑上调试 ASP.NET 网站时。

这是合乎逻辑的,因为没有 DNS 服务器来解析 localhost GetAddrInfo 调用。如何解决此问题并允许自己在断开连接的环境中调试网站?

【问题讨论】:

    标签: asp.net visual-studio-2010 dns


    【解决方案1】:

    我是一个非常敬业的“在长途飞行中破解伟大事物”的人。长期的答案是您将应用程序设计为在断开连接的环境中工作。对于当今倾向于依赖公共互联网服务运行的应用程序来说,这更加困难。然后他们又在飞机上安装了 wifi。

    无论如何,很难给出具体的建议,因为重要的问题是“你为什么首先要访问外部主机”。如果您只有有限数量的站点可以访问并且它可以处理无法与相关外部服务通信的问题,您可以使用windows hosts file 来提供您自己的本地 DNS 服务。你可能会在这背后伪造更多的东西。但这通常不能很好地扩展。

    【讨论】:

    • 问题在于我在 ASP.NET 项目中使用的 ClientDependency 库。它只是尝试查询本地主机(我猜)并且无法解决它。本地主机被硬编码在主机文件中,并且这些行未注释。我猜System.Net.Dns.GetAddrInfo(String name) 需要和实际的 DNS 服务器和主机是不够的。
    • 我会弄清楚它在查询什么,以我的经验很难绕过本地主机文件。而且我已经完成了很多涉及创造性使用 DNS 的特技网络。此外,如果它是clientdependency.codeplex.com,那么它可能正在寻找连接 CDN。请参阅之前关于在假设您在公共互联网上的应用程序中变得更强硬的声明。
    【解决方案2】:

    您可以添加虚拟网卡。那应该绕过DNS的问题。以下是一些这样做的选择:

    How do you create a virtual network interface on Windows?

    【讨论】:

    • 有一个microsoft km-test loopback adapter 虚拟网卡,但它并没有改变游戏规则,System.Net.Dns.GetAddrInfo(String name) 仍然失败。
    • 如果安装Virtual PC会怎样?它应该创建一个到 VM 的桥接网络,但你不在乎,它可能会激活 DNS。
    猜你喜欢
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 2018-03-22
    相关资源
    最近更新 更多