使用传统ASP时为什么会出现ADO连接错误?

时间:2009-07-05 16:05:31

标签: asp-classic ado

运行这个经典的asp脚本时出错:

Dim DB_CONNECTIONSTRING, rs, iRecordCount, strSQL

DB_CONNECTIONSTRING = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=employee;Trusted_Connection=yes;"
strSQL = "SELECT * FROM EmployeeProfiles"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strSQL, DB_CONNECTIONSTRING, adOpenStatic, adLockReadOnly, adCmdText

我得到的消息是(服务器确实存在):

  

Microsoft OLE DB Provider for SQL   服务器错误'80004005'

     

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

     

\ Default.asp,第13行

2 个答案:

答案 0 :(得分:1)

您运行ASP的服务器没有正在运行的数据库服务器,或者数据库服务器应该具有实例名称。一个常见的错误是忘记为SQLExpress安装添加SQLEXPRESS实例名称。

答案 1 :(得分:1)

我看到你在连接字符串中使用Trusted_Connection = yes。这意味着无论运行什么身份ASP将尝试使用Windows身份验证连接到数据库服务器。 Web服务器使用的实际身份取决于平台和设置(通常是IUSR_Foo)。

要测试这是否是问题,请尝试使用临时替换使用SQL身份验证的连接字符串。如果出现此问题,您可能需要将Web服务器配置为在已授予数据库访问权限的其他用户帐户(首选)下运行ASP,或者授予当前Web服务器对数据库的身份访问权限。或者你可以坚持使用SQL身份验证。