最近在做一个Web项目,还处于开发阶段,我想把程序连接的SQL Server指定到我们的一台电脑上(有固定的外网IP,为了方便调试程序和修改数据库),我们在自己的开发机子上运行程序没有问题,但是放到网站服务器上就连接不上了,是不是网站服务器公司禁止掉某些协议还是怎么回事?刚开始做Web方面的项目,希望大家多多指点~

解决方案 »

  1.   

    你们的SQL Server端口很容易被扫描和攻击的。
      

  2.   

    下面是我用的连接字符串
    "Server=xx.xx.xx.xx,;uid=sa; pwd=xxxx;Database=DB;"
    但是连接不上,是不是我的连接字符串有问题?但是在我的开发机子上是好的,请问 soul850522 你的连接字符串是如何写的?
      

  3.   

    老是报这样的错误:
    An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: TCP Provider, error: 0 - A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.) 
    比较郁闷,不知道那里的问题.
      

  4.   


    我在开发机器上可以的,我在连接字符串后面加上自己指定的端口还是不行不行的.
    "Server=xx.xx.xx.xx,2433;uid=sa; pwd=xxxx;Database=DB;" 
      

  5.   

    我用如下脚本<script language="JavaScript"> 
        var objdbConn = new ActiveXObject("ADODB.Connection"); 
        var strdsn = "Driver={SQL Server};SERVER=IP,端口号;UID=sa;PWD=xxxx;DATABASE=DB"; 
        objdbConn.Open(strdsn); 
        var objrs = objdbConn.Execute("Select top 20 orderid from orders"); 
       
        var fdCount = objrs.Fields.Count - 1; 
        if (!objrs.EOF){ 
         document.write("<table border=1><tr>"); 
         for (var i=0; i <= fdCount; i++) 
          document.write("<td><b>" + objrs.Fields(i).Name + "</b></td>"); 
         document.write("</tr>"); 
         while (!objrs.EOF){ 
          document.write("<tr>"); 
          for (i=0; i <= fdCount; i++) 
           document.write("<td valign='top'>" + objrs.Fields(i).Value + "</td>"); 
          document.write("</tr>"); 
          objrs.moveNext();      } 
       
         document.write("</table>"); 
        } 
        else 
         document.write("No Data!<br>"); 
        objrs.Close(); 
        objdbConn.Close(); 
       </script> 
    回报一个错误:“Safety settings on this computer prohibit accessing a data source on another domain”
    我设置IE 的安全级别,默认 “Accress Data source across domain” 是 Disabled , 启用这个选项就可以了.
    但是我用C#的System.Data.SqlClient.SqlConnection还是连接不上,感觉更奇怪了.
      

  6.   


    <script language="JavaScript"> 
        var objdbConn = new ActiveXObject("ADODB.Connection"); 
        var strdsn = "Driver={SQL Server};SERVER=IP,Port;UID=sa;PWD=xxx;DATABASE=DB"; 
        objdbConn.Open(strdsn); 
        var objrs = objdbConn.Execute("Select top 20 orderid from orders"); 
       
        var fdCount = objrs.Fields.Count - 1; 
        if (!objrs.EOF){ 
         document.write("<table border=1><tr>"); 
         for (var i=0; i <= fdCount; i++) 
          document.write("<td><b>" + objrs.Fields(i).Name + "</b></td>"); 
         document.write("</tr>"); 
         while (!objrs.EOF){ 
          document.write("<tr>"); 
          for (i=0; i <= fdCount; i++) 
           document.write("<td valign='top'>" + objrs.Fields(i).Value + "</td>"); 
          document.write("</tr>"); 
          objrs.moveNext(); 
         } 
       
         document.write("</table>"); 
        } 
        else 
         document.write("No Data!<br>"); 
        objrs.Close(); 
        objdbConn.Close(); 
       </script> 
    我用上面的脚本直接运行会得到一个错误: Safety settings on this computer prohibit accessing a data source on another
    domain.
    我修改了 IE 的安全级别,默认 “Accress Data source across domain” 是 Disabled , 启用这个选项就可以了.我用System.Data.SqlClient.SqlConnection仍然连接不上,真是不明白.
      

  7.   

    给sql server 打sp4  开启 1433 端口 如果用ip连的话 这个是必须的。