我有Java和.NET应用程序在使用Microsoft Windows Server 2003,企业版的应用服务器上运行。这些正在迁移到另一个应用服务器Windows 2008 64位机器。
所有应用程序都连接到同一个SQL Server 2005数据库,该数据库使用命名实例。
到目前为止,我已经尝试将应用程序移动到新的应用服务器,而不更改配置文件中的任何内容。
在新的应用服务器上,Java和.NET应用程序都不能连接到数据库(命名实例)。
JDBC错误消息:“连接到命名实例失败。错误:java.net.SocketTimeoutException:接收超时。”
.NET错误消息:“在建立与SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。”
如果我更改DB配置为不是命名实例的配置,则可以在新的应用服务器上正常工作。
因为我们能够在旧的应用服务器上连接数据库,所以数据库设置正确。 我可以从新的应用服务器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,以便消除我的应用程序作为问题点。 从管理工具中,如果我使用[servername] [instancename],我会收到消息“在建立与SQL Server的连接时发生与网络相关或特定于实例的错误...”但是当我使用[servername],[port]时它可以正常工作。 不确定是否有任何方法可以解决这个问题?
更新2:将问题升级到基础架构/服务器/网络团队。他们在新的应用服务器上禁用了Windows防火墙。 Presto,现在我可以在Management Studio中连接到[dbservername]\ [dbinstance],并且所有应用程序都使用现有的配置文件正常工作。
所有应用程序都连接到同一个SQL Server 2005数据库,该数据库使用命名实例。
到目前为止,我已经尝试将应用程序移动到新的应用服务器,而不更改配置文件中的任何内容。
在新的应用服务器上,Java和.NET应用程序都不能连接到数据库(命名实例)。
JDBC错误消息:“连接到命名实例失败。错误:java.net.SocketTimeoutException:接收超时。”
.NET错误消息:“在建立与SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。”
如果我更改DB配置为不是命名实例的配置,则可以在新的应用服务器上正常工作。
因为我们能够在旧的应用服务器上连接数据库,所以数据库设置正确。 我可以从新的应用服务器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,以便消除我的应用程序作为问题点。 从管理工具中,如果我使用[servername] [instancename],我会收到消息“在建立与SQL Server的连接时发生与网络相关或特定于实例的错误...”但是当我使用[servername],[port]时它可以正常工作。 不确定是否有任何方法可以解决这个问题?
更新2:将问题升级到基础架构/服务器/网络团队。他们在新的应用服务器上禁用了Windows防火墙。 Presto,现在我可以在Management Studio中连接到[dbservername]\ [dbinstance],并且所有应用程序都使用现有的配置文件正常工作。