我做了个调试,把每步都显示出来:
try{
Class.forName(DBDriver);
%>
<p align="center">装载JDBC类完成!</p>
<%
}catch(Exception e)
{
%>
<p align="center">类无法被装载:<%=e%></p>
<%
}

try{
conn = DriverManager.getConnection(ConnStr);
%>
<p align="center">已连接数据库!</p>
<%
}catch(Exception e)
{
%>
<p align="center">连接数据库时错误:<%=e%></p>
<%
}
错误页面如下:装载JDBC类完成!
连接数据库时错误:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.

解决方案 »

  1.   

    1.是不是服务器的端口不对??一般的端口是1433。
    2.你连接的时候是用localhost吗?把它改成IP地址再试试。jdbc:microsoft:sqlserver://218.194.144.2:1433;DatabaseName=test
      

  2.   

    1,提示端口出错,但是,我是从旧服务器上直接拷贝的jsp文件过来新服务器的。
    以前在旧服务器都运行的好好的阿~~
    2,
    DBDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
    ConnStr = "jdbc:microsoft:sqlserver://199.18.18.199;DatabaseName=mybook;User=***;Password=***";
      

  3.   

    ConnStr="jdbc:microsoft:sqlserver://199.18.18.199:1433;DatabaseName=mybook;User=***;Password=***";
    试试
      

  4.   

    你把端口改一下试试。ConnStr = "jdbc:microsoft:sqlserver://199.18.18.199:1433;DatabaseName=mybook;User=***;Password=***";不行的话改一下别的端口,自己来测试一下,看sql server占用了哪个端口。
      

  5.   

    1433我也试验过了,还是Error establishing socket
    感觉可能端口被占用了,但是企业管理器就可以连到199.18.18.199的数据库服务器阿~~
    怪,怎么看它用了哪个端口?
      

  6.   

    我也用sql的“服务器网络实用工具”看过了,旧服务器上数据库tcp/ip的确是用的1433.
    但是感觉新服务器的1433这个端口可能被别的程序用了怎么办?
      

  7.   

    在企业管理器中
    Microsoft SQL Servers\SQL Server组\服务器名(Windows NT)
    然后在这里点右键,选择其中的属性,会弹出对话框,选择常规选项卡,里面有一个网络配置的按钮,点击后弹出对话框,选择常规选项卡,里面启用的协议中选择TCP/IP,然后点击属性按纽,进行端口的配置即可。
      

  8.   

    问题找到了~~新服务器上有2块网卡,我用的是本地连接2,结果导致tcp/ip不可用。
    ping 199.18.18.199都不行呢,奇怪的是企业管理器倒是可以,
    它也许自动换了别的协议连.199的,我把网线插到第一个网卡,换了地址就一切Ok了~~
    多谢多谢~~