我在使用 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],并且所有应用程序都在使用现有配置文件工作。