2009-07-05 40 views
0

我在運行這個經典的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

回答

1

我看到你在連接字符串中使用Trusted_Connection = yes。這意味着無論ASP身份運行在哪個身份上,都將嘗試使用Windows身份驗證連接到數據庫服務器。 Web服務器使用的實際身份取決於平臺和設置(通常爲IUSR_Foo)。

要測試這是否是問題,請嘗試使用暫時將連接字符串替換爲使用SQL身份驗證的連接字符串。如果出現這種問題,您可能希望將Web服務器配置爲在已授予數據庫訪問權的其他用戶帳戶(首選)下運行ASP,或者將當前Web服務器的身份訪問權授予數據庫。或者你可以堅持使用SQL身份驗證,當然。

1

無論你在運行ASP服務器沒有正在運行的數據庫服務器或數據庫服務器應該有一個實例名稱。一個常見的錯誤是忘記爲SQLExpress安裝添加SQLEXPRESS實例名稱。

+0

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

相關問題