各位大哥大姐,帮小弟一个忙吧。现在给客户那IBM 346 服务器上做了网站。 2003系统,代码是ASP,数据库SQL 2000
安装完后一开始都没有问题,但是现在阶段性出现,[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。
访问不到数据库的问题。只要重新启动服务器就好用了, 但是过两天又不好用。到最后为了防止服务器停止,做了作业,20分钟往数据库中插入一条数据。一开始好用但是平均过了半个月也就出现上面的问题。如果不加作业最快10个小时,最慢2到3天就出现这个问题。系统也做了很多遍。数据库也装了很多次,也打了SP4的补丁。为了排除问题我将这个网站放在别的服务器上,也是2003系统。没有出现上面的问题。小弟发现了个问题,如果在这个服务器上网站每天都被访问,这个问题很少出现。如果长时间没有被访问的话。那么这个问题很容易就出现了。但是我在公司的服务器上一个周没有访问的也不会有问题。
有的人说是数据库中的轮询时间改小点,我也改了,默认是10秒,改为了5秒(不懂为什么和轮询时间有关系,但是活马当死马医了)。还是出现这个问题。给客户安装了那么多的网站和产品第一次出现这个问题。所以想请客户有没有好点的解决办法。在线等。谢谢。

解决方案 »

  1.   

    是 SQL Server 服务不定时地停止?
    可以启动 SQL Server Agent 服务,在企业管理器中的“SQL Server Agent 属性”对话框的“常规”选项卡中选择“自动重启 SQL Server  服务”。这会使两个服务互相监视对方的运行状态,在服务停止时自动重启。
    也可以在 SQL Server  服务属性中的“恢复”选项卡中设置,在服务停止时自动重启。如果要具体了解 SQL Server  服务为何停止,应该从 windows 事件日志和 sql server 错误日志上寻找线索。
      

  2.   

    谢谢你的回答,你的方法我也试过,一开始是停止了,现在出现的是下面的问题。
    代码报DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。后,服务器上的查询分析器和企业管理都能进去,并执行了INSERT INTO 语句,也能正常执行。服务器也显示开启,但是在执行代码中的数据库连接后,还是报DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问这个问题
    这能是什么原因。代码应该没有问题,在其余机器上都没有问题。代码如下:
    ConnectString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;PassWord=sa;Initial Catalog=数据库名称;Data Source=127.0.0.1;"
    (是不是这127.0.0.1的问题,我若改成.是不是能好。)
    在重新启动机器后,就不报着错误了,可是过上2,3天又出现这个问题。在出现这个问题的时候,把数据库重新安装,重新启动服务(不重启的状态下)还是报这个问题。非要等机器重新启动了才好用。因为是ASP的程序,是不是跟IIS等机器配置有关系?
      

  3.   

    这个错误可能是服务停止后重新启动,asp 程序需要重新与服务建立连接。遇到此错误可以试试重启一下 iis 中的应用程序池,看能否解决。问题的关键在于 SQL Server 为什么会自动停止,这个问题比较麻烦。先检查一下 windows 事件日志中有什么相关的信息。windows 操作系统的补丁都打全了吗?