2

我有一个部署在 DMZ 服务器上的 Java Web 应用程序。我已经为 Web 应用程序中的本地计算机数据库连接建立编写了以下代码

url= jdbc:microsoft:sqlserver://" + ipAddress + ":1433;databaseName=" + loginForm.getDbName();
conn = DriverManager.getConnection(url, loginForm.getDbUserName(), loginForm.getDbPWD());

现在我通过互联网访问应用程序并传递本地机器的 ipAddress、本地机器 dB、用户名、密码。

但收到以下错误:

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
4

2 回答 2

1

你可以尝试一些事情:

  1. 检查您的服务器是否正在侦听该端口
  2. 检查您的服务器是否允许该端口上的流量
  3. 检查任何其他中间防火墙是否允许该端口上的流量
  4. ping 服务器
  5. 看看你是否可以telnet到服务器/端口
  6. 查看您是否可以访问服务器上的任何其他服务(网络、电子邮件等)

该错误似乎表明服务器是可联系的,但它要么没有在端口上监听,要么拒绝与你交谈——你检查了服务器日志吗?

于 2013-04-12T03:36:10.753 回答
1

Web 应用程序根本无法与指定的数据库建立 TCP/IP 连接。

IP 地址在ipAddress变量中的机器应该可以从 Web 应用程序服务器访问(通过网络)。

ipAddress您可以从Web 应用程序机器上 telnet 的 1433 端口吗?

检查是否:

  • 数据库在(默认)1433 端口在线;
  • 数据库正在接受传入的 TCP/IP 连接(查看此链接以了解如何启用它);
  • Web 应用程序服务器和数据库服务器之间没有防火墙。

此外,当您似乎是ipAddress从表单输入时,请检查最终的拼写错误和String转换。

于 2013-04-12T03:36:57.243 回答