首页 新闻 会员 周边 捐助

ASP和Sql Server 2008的兼容性不好吗?

0
悬赏园豆:10 [已关闭问题]

前几天对服务器升了级,数据库放在独立服务器上,并且采用sql Server 2008,结果现在只要访问人数稍微有点多,整个网站的访问速度就会很慢.并提示:

Microsoft OLE DB Provider for SQL Server 错误 '80004005'

[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。

令人奇怪的是,这时候打开一些静态页面的速度也会变慢,并且FTP的速度也会跟着变慢.请问这是不是因为ASP和Sql Server 2008的兼容性不好造成的?

问题补充: 服务器CPU的占用率是正常的,没有一直居高不下
RyanXM的主页 RyanXM | 初学一级 | 园豆:65
提问于:2008-11-03 09:14
< >
分享
其他回答(1)
0

不是的,SQL Server只是个数据库,和ASP不存在兼容性的冲突,你可以当它是SQL Server2000的用

如果是人数多了之后性能下降厉害,估计是系统设计有问题,看有拒绝访问的错误,是不是连接在使用后没有关闭而导致连接数满了?记得adodb.connection在ASP中使用后必须立即关闭的

FTP和静态页也慢,这个估计是整个服务器都变得很慢了,看下IIS、SQL Server等进程占用的CPU和内存占用是不是正常,估计你的sql server占用内存会比较多了

丁学 | 园豆:18730 (专家六级) | 2008-11-03 11:39
0

报这个错误可能有以下几种情况,希望能给你些帮助:

这个错误发生在当IIS使用匿名帐号(通常是IUSR)时,该帐号在NT中对数据库所在的目录
没有正确的权限.

还要检查一下数据源文件(DSN)是否被别的程序标志成为正在使用中,
这些别的程序一般是Visual InterDev,关闭任何一个InterDev中的正打开和数据库连接的项目。

这个错误还可能发生在这种情况:如果在DSN中使用了一个UNC路径(就是通用命名协议),请改用
本地路径进行测试,因为如果对本地数据库使用UNC也可能出错。
还可能发生在这种情况,如果服务器要访问Access中的一个表,而这个表却联接在一个网络服务器上。
最可能的原因是ConnectString是一个在global.asa中初始化的Session变量,但是global.asa
却没有正常工作。解决办法是,检查赋值时是否正确;还有一个原因就是你在你的ConnectString中加入了多余的空格

例如:

Set conn = Server.CreateObject("ADODB.Connection")

connstr = "Provider=Sqloledb; User ID=" & SqlUsername & "; Password=" & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source=" & SqlLocalName & ";"

conn.Open connstr

改为
Set conn = Server.CreateObject("ADODB.Connection")

connstr="Driver={SQL Server};Server=local;uid="&SqlUsername&";pwd="&SqlPassword&";database="&SqlDatabaseName&";autotranslate=yes;"
conn.Open connstr

或者

Set conn = Server.CreateObject("ADODB.Connection")

connstr="Driver={SQL Server};Server=local;uid="&SqlUsername&";pwd="&SqlPassword&";database="&SqlDatabaseName&";autotranslate=yes;Data Source=" & SqlLocalName & ";"
conn.Open connstr

Geeks | 园豆:560 (小虾三级) | 2008-11-03 15:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册