2013-04-03 70 views
0

我需要与网络基础设施人员一起去了解为什么突然出现像以下那样的SQL连接错误。连接字符串中的名称解析无法通过网络共享

作为准备工作,请提供为什么会出现此错误的提示,以及我们可以尝试在应用程序和/或基础设施方面绕过它的事情。

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

现在复杂:

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

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

+1

什么是您的连接字符串?这是名称解析问题吗?您是否尝试使用IP地址(可以ping/traceroute)而不是名称? – 2013-04-03 18:45:42

+0

谢谢:在配置文件中尝试了基于IP的连接字符串,现在它获得了与数据库的初始连接(将来的连接失败,因为它也是基于名称的,明天将在测试数据库中更改) – 2013-04-03 19:20:23

+0

您是在说IP地址服务器可能会更改,但名称不会?如果数据库被移动到不同的服务器,那么* IP地址和名称都会改变,所以无论如何你的连接字符串都必须改变。 – 2013-04-03 19:22:45

回答

1

现在使用IP地址。如果您确实需要连接字符串中的友好名称,请使用hosts文件,前提是您的网络人员无法获得名称解析工作。当服务器移动时,您可以更新配置文件以指向新服务器(按名称,如果他们知道如何在当前使用该服务器,或者使用新IP,则可以指定新服务器),或者更新hosts文件以映射旧的友好名称添加到新的IP地址。

我们真的不能告诉你为什么它改变或为什么它被打破 - 你应该当你为他们提供的证据从您的网络团队一个更好的答案,例如能够通过IP地址telnet到计算机上的端口48000但不是按名称。他们可能不知道这个问题,但在ServerFault上的问题可能更好。

+0

会做你明天指出的,并让结果知道。 – 2013-04-04 15:31:36