Los*_*ode 3 sql-server networking firewall named-instance
我在使用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连接字符串:“服务器= [dbservername] \ [dbinstance];数据库= Risk_DB; Uid = [用户]; Pwd = [pwd];”
更新 根据答案中的建议,我得到了实例端口号。我还安装了SQL Server Management Studio,因此可以消除我的应用程序的问题。从Management Studio,如果我使用[服务器名称] [实例名称],则会收到消息“在建立与SQL Server的连接时出现与网络相关或特定于实例的错误...”,但是当我使用[服务器名称]时可以使用,[港口]。不知道是否有任何解决方法?
更新#2将问题升级到基础架构/服务器/网络团队。他们禁用了新应用服务器上的Windows防火墙。presto,现在我可以连接到Management Studio中的[dbservername] \ [dbinstance],并且所有应用程序都可以使用现有配置文件运行。
您命名的实例将在其他端口上运行。端口1433(默认实例的默认端口)可能已打开,并且命名实例运行所在的端口可能已被阻止。您可以在错误日志中检查命名实例的端口(假设您可以在本地连接,在对象资源管理器中,展开服务器,展开管理,展开SQL Server日志,右键单击当前,然后选择“查看SQL Server日志” IIRC ),则在启动时会显示类似以下内容:
Server is listening on [ 127.0.0.1 <ipv4> 3587 ].
Run Code Online (Sandbox Code Playgroud)
最后一个数字是需要从您的远程计算机以及到达那里必须经过的任何网络设备和服务才能访问的端口号。如果找不到这样的行,则可能未为命名实例启用TCP / IP。在该服务器上,转到“ SQL Server配置管理器”,展开“ SQL Server网络配置”,单击“协议”,并确保在右窗格中启用了TCP / IP。如果必须启用此功能,则需要重新启动SQL Server才能使其生效。
如果已启用(或一旦启用它并重新启动服务),则在右键单击“ TCP / IP”,单击属性并移至IP时,您应该能够刷新此视图并验证正在使用的端口。地址标签。您可以看到每个IP当前使用的端口。这里将有多个IPn部分和一个IPAll部分。对于每个IP,您可以将“ TCP端口”框更改为要使用的端口(并将所有“动态TCP端口”框中的任何值都删除为0)。点击“应用”并重新启动服务。这将再次需要重新启动服务,但是将允许您指定特定的端口,以便您可以向防火墙添加排除项(或使用已经存在的防火墙,前提是该服务器尚未使用该端口)。
| 归档时间: |
|
| 查看次数: |
10207 次 |
| 最近记录: |