0

我需要和网络基础设施人员坐在一起,看看为什么突然发生如下 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

连接字符串是这样的:

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 是否配置为允许远程连接。

4

1 回答 1

1

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

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

于 2013-04-03T19:27:02.463 回答