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

问题描述:

我在运行这个经典的asp脚本时遇到错误:使用传统ASP时为什么会出现ADO连接错误?

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 

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

用于SQL的Microsoft OLE DB提供程序 服务器错误'80004005 '

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

\ Default.asp,第13行

+0

您是否正在运行SQL Server 2005?你是运行默认实例还是命名实例? – feihtthief 2009-07-05 17:19:05

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

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

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

+0

我没有使用SQLExpress。我正在使用本地主机 – Csharp 2009-07-05 16:33:46