【问题标题】:Name resolution in connection string fails from network share连接字符串中的名称解析从网络共享失败
【发布时间】:2013-04-03 18:43:58
【问题描述】:

我需要与网络基础设施人员坐在一起,看看为什么会突然发生如下 SQL 连接错误。

作为准备,请输入为什么会发生此错误,以及我们可以在应用程序和/或基础架构方面尝试哪些措施来规避它。

  • 从网络共享启动应用程序时发生错误。
  • 在本地复制文件并在本地启动时不会发生错误。
  • 错误总是可以重现的。
  • 几周前(在我去度假之前)它运行良好,所以我不确定它是什么时候自我介绍的。

现在的复杂性:

  • 用户在 DomainA 中
  • 工作站位于 DomainB 中
  • 数据库服务器在 DomainB 中
  • 使用用户名/密码登录数据库(尚无可信连接)
  • 登录域是 DomainA
  • 网络共享位于 DomainA 中,但作为 DFS 的一部分
  • DomainA 和 DomainB 之间的双向信任
  • 客户端应用程序是 x86 Windows 7 Enterprise 上的 .NET 4(完整框架)
  • 服务器是 x64 Windows Server 2008 R2 上的 SQL Server 2008 R2 Enterprise

ConnectionString 是这样的:

Server=severname.DomainB\InstanceName,48000;Database=DBName;...

尝试了一个基于 IP 的 ConnectionString,如下所示,它有效,所以它是一个名称解析的东西:

Data Source=IPAddress\InstanceName,48000;Database=DBName;...

由于 IP 地址可能会更改,我们希望保留名称(但 IP 地址可以使用一段时间)。
我们应该做些什么来进一步研究名称解析的事情?

换句话说:

为什么从网络共享启动时名称解析不同 比从本地驱动器?为什么过去没有什么不同?

环境非常封闭(典型的公司环境),因此简单的调试可能很困难。

IT 基础架构人员正在准备拆分 DomainA 和 DomainB(未来的行动之一:将大量用户从 DomainA 转移到 DomainB,然后将 DomainB 设为登录域),并尝试对跑步信息的影响最小。

与 SQL Server 建立连接时出现与网络相关或特定于实例的错误。
服务器未找到或无法访问。
验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。

【问题讨论】:

  • 你的连接字符串是什么?是名称解析问题吗?您是否尝试使用 IP 地址(您可以 ping/traceroute 的地址)而不是名称?
  • 谢谢:在配置文件中尝试了基于 IP 的连接字符串,现在它与数据库建立了初始连接(未来连接失败,因为这也是基于名称的,明天将在 TEST 数据库中更改)
  • 您是说服务器的IP地址可能会改变,但名称不会?如果数据库被移动到不同的服务器,那么both IP 地址和名称都会改变,所以无论哪种情况,你的连接字符串都必须改变。
  • 跨域名解析会很棘手,尤其是在环境被“锁定”并且您不太可能建立完全开放的信任等情况下。您可以做什么为了避免以后必须更改连接字符串,请使用hosts 文件将SomeName 映射到current IP,然后您可以只更改hosts 文件。但是,我看不出更改配置文件能给你带来什么。
  • 是:将服务器移动到新数据中心时,IP 地址可能会发生变化。名称更方便,因为它表明它是哪台 OTAP 机器。但我们可以在一段时间内使用 IP。

标签: sql-server-2008 windows-7 .net-4.0


【解决方案1】:

暂时使用 IP 地址。如果您真的、真的、真的想要在连接字符串中使用友好名称,那么如果您的网络人员无法使名称解析正常工作,请使用hosts 文件。当服务器移动时,您可以更新配置文件以指向新服务器(通过名称,如果他们知道如何让它在那时工作,或者通过新 IP 如果没有),或者更新 hosts 文件到将旧的友好名称映射到新的 IP 地址。

我们无法真正告诉您它为什么会改变或为什么会损坏 - 一旦您向网络团队提供证据(例如能够通过 IP 地址远程登录到端口 48000 上的机器),您应该从网络团队那里得到更好的答案,但是不是名字。他们可能不知道解决方法,但在 ServerFault 上询问具体情况可能更好。

【讨论】:

  • 明天将按照您的指示执行并告知结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-24
  • 1970-01-01
  • 2015-11-03
  • 1970-01-01
  • 1970-01-01
  • 2017-11-24
相关资源
最近更新 更多