【发布时间】:2012-04-30 22:37:36
【问题描述】:
我在使用 Microsoft Windows Server 2003 企业版的应用服务器上运行 java 和 .net 应用程序。这些正在迁移到另一台应用服务器 Windows 2008 64 位机器。
所有应用程序都连接到命名实例上的同一个 SQL Server 2005 数据库。
到目前为止,我已尝试将应用程序完全按原样移动,而不会更改配置文件,从旧盒子移动到新盒子。
在新的应用服务器上,java 和 .net 应用程序都没有连接到数据库(命名实例)。
JDBC 错误消息:“与命名实例的连接失败。错误:java.net.SocketTimeoutException:接收超时。”
.net 错误消息:“与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。”
如果我在命名实例上将数据库配置更改为非,它可以在新的应用服务器上运行。
数据库设置正确,因为我们能够在旧应用服务器上连接。我可以从新的应用服务器 ping 数据库服务器。
有什么原因这不能在新的应用服务器上运行吗?
java 连接字符串:“jdbc:microsoft:sqlserver://[dbservername];SelectMethod=Cursor;instanceName=[dbinstance]”
.net 连接字符串:“Server=[dbservername]\[dbinstance];Database=Risk_DB;Uid=[user];Pwd=[pwd];”
更新 根据答案中的建议,我得到了实例端口号。我还安装了 SQL Server Management Studio,这样我就可以消除我的应用程序作为问题点。在 Management Studio 中,如果我使用 [servername][instancename],我会收到消息“在建立与 SQL Server 的连接时出现与网络相关或特定于实例的错误...”但是当我使用 [servername] 时它可以工作,[港口]。不确定是否有办法解决这个问题?
更新 #2 将问题上报给基础架构/服务器/网络团队。他们在新的应用服务器上禁用了 Windows 防火墙。 Presto,现在我可以在 Management Studio 中连接到 [dbservername]\[dbinstance],并且所有应用程序都在使用现有配置文件工作。
【问题讨论】:
标签: sql-server networking firewall named-instance