【问题标题】:Does host file overrides DNS for SQLConnection?主机文件是否覆盖 SQLConnection 的 DNS?
【发布时间】:2016-01-11 17:28:05
【问题描述】:

C:\Windows\System32\drivers\etc\hosts 覆盖 MSDOS 的 DNS。例如,如果您在 DNS 中的 IP 地址正确,而在主机文件中的 IP 地址不正确,则您将无法在包含主机文件的 PC 上 ping 域名。

同样的原理是否适用于 SQLConnection 对象?例如,请看下面的代码:

Dim objCon As New SqlConnection("Data Source=server;Initial Catalog=database;User ID=user;Password=password;MultipleActiveResultSets=True")

如果主机名包含无效的 IP 地址,Web 服务器是否会连接到数据源:服务器。

【问题讨论】:

  • 我还没有发现更改主机文件不会影响连接的情况,我怀疑连接字符串有什么不同。但是,为什么不试试看呢?
  • @James Thorpe,我已经测试过了。似乎 ASP.NET 忽略了主机文件中的内容。
  • 我不知道你从哪里得到的想法,MS DOS 在 Windows 中有自己的 TCP/IP 设置。 hosts 文件为 Windows 中的 TCP/IP 堆栈配置本地名称解析。 IE。它也会影响 SQL 连接。

标签: .net vb.net


【解决方案1】:

是的,hosts 文件会覆盖使用名称解析的任何内容,包括 SQL 客户端(使用标准 DNS 解析)。

更新

如果您没有提供FQDN(因为您没有在您的示例中),那么根据操作系统和所涉及的网络配置,它可能会回退到 NetBIOS 名称解析。这是一种将主机名解析为 IP 地址的老式广播相关方法(就像在办公室里尖叫“嘿,鲍勃!”并等待鲍勃回应您)。我不会依赖这一点,但它可以解释为什么当您在主机文件中输入无效名称时它似乎仍然有效。

【讨论】:

  • 如果指定“dsn=connectionName”,还会使用hosts文件吗?
  • 我在主机文件中输入了无效的 IP 地址。 MSDOS 无法解析 IP 地址,但是 Web 应用程序仍然可以连接到数据库?
  • @cFrozenDeath 它将使用主机文件 / DNS 来定位该连接字符串中指定的任何服务器。
  • 我已经测试过了。似乎 ASP.NET 忽略了主机文件中的内容
  • @w0051977 查看我的更新,您是想具体完成某事,还是只是询问以便了解正在发生的事情?
猜你喜欢
  • 2016-09-01
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
  • 2017-09-10
  • 2012-02-28
  • 2019-01-03
  • 2017-07-07
  • 1970-01-01
相关资源
最近更新 更多