我需要和网络基础设施人员坐在一起,看看为什么突然发生如下 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 是否配置为允许远程连接。