我已经设置了记录集/分页 - 在 IIS6 中工作正常,但是当我在 IIS7 服务器上运行该站点时,出现以下错误:
Microsoft OLE DB Provider for SQL Server error '80004005'
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.
/orders.asp, line 197
代码如下所示:
Set objPagingConn = Server.CreateObject("ADODB.Connection")
objPagingConn.打开 CONN_STRING
设置 objPagingRS = Server.CreateObject("ADODB.Recordset") objPagingRS.PageSize = iPageSize objPagingRS.CacheSize = iPageSize objPagingRS.Open strSQL、objPagingConn、adOpenStatic、adLockReadOnly、adCmdText
iPageCount = objPagingRS.PageCount iRecordCount = objPagingRS.RecordCount
第 197 行是 objPagingConn,Open ... 行。 我有大约 10 个这样的站点需要迁移 - IIS7 中有一个简单的修复吗???
非常感谢您的帮助! 非常感谢, 马丁
经过很多很多实验,我找到了一个有效的连接字符串:
Provider=SQLOLEDB.1;Server=123.123.123.123,1433;Initial Catalog=mydb;Persist Security Info=True;User ID=sqladmin;Password=password;
我希望这可以帮助遇到同样问题的其他人 - 它已经困扰我so很长时间了!
听起来您在切换时失去了对 SQL Server 的权限。 你的连接字符串是什么? 您是否尝试使用可信连接? 如果是这样,也许 IIS7 正在不同的帐户下运行。
看看这篇MSDN文章:
您可能会收到此错误消息 当满足以下条件时 正确:
- 集群上已安装 SQL Server 2005 或 SQL Server 2000。
- 您正在使用 TCP/IP 连接到 SQL Server 命名实例 插座。
- 在客户端域上启用 IPSec 策略。
- 服务器域未启用IPSec策略。
他们建议使用端口号或命名管道名称更新连接字符串:
Provider=SQLOLEDB.1;集成 安全=SSPI;坚持安全 信息=False;用户ID=clientID;数据 源=tcp:TcpIp地址,端口