当我从桌面上的控制台应用程序调用 Dns.GetHostEntry("SomeServerName") 时,它可以很好地解析 IP 地址。当我在同样在我的桌面上运行的 ASP.NET 应用程序中执行相同的代码时,我得到一个带有消息“未知主机”的 SocketException。
我感觉我的 IIS / ASP.NET 安装可能有问题,但我现在没有时间尝试重新安装。
作为测试,我在 machine.config 中更改了 ASP.NET 帐户的身份以使用我自己的网络凭据,但这没有任何区别。
有任何想法吗?
更新:
看来我需要澄清一下。我在工作站上从 ASP.NET 进行网络通信时遇到问题。这包括尝试使用 SmtpClient 发送电子邮件以及尝试通过 ODBC 连接连接到 IBM DB2。在控制台应用程序中运行时,这些东西都可以正常工作。根本原因似乎是当代码在 ASP.NET 下运行时,DNS 解析失败,虽然我不知道为什么。我能想到的唯一区别是安全上下文。
更新 2:
以下是运行 Wireshark 的一些结果: 当从控制台应用程序进行调用时,我立即看到通过网络发送 2 个“标准域名系统查询”。当从 ASP.NET 应用程序发出相同的调用时,延迟大约 8 秒后,我看到 3 个“NetBIOS 名称服务查询”通过网络发送。有任何想法吗?