Почему я получаю сообщение об ошибке подключения ADO при использовании классического ASP?

Я получаю сообщение об ошибке при запуске этого классического сценария 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 для SQL Server «80004005»

[DBNETLIB][ConnectionOpen (Connect()).]SQL Server не существует или доступ запрещен.

\Default.asp, строка 13


person Csharp    schedule 05.07.2009    source источник
comment
Вы используете SQL Server 2005? И вы используете экземпляр по умолчанию или именованный экземпляр?   -  person feihtthief    schedule 05.07.2009


Ответы (2)


Я вижу, вы используете Trusted_Connection=yes в строке подключения. Это означает, что любое удостоверение, под которым работает ASP, попытается подключиться к серверу базы данных, используя проверку подлинности Windows. Фактический идентификатор, который использует веб-сервер, зависит от платформы и настроек (обычно IUSR_Foo).

Чтобы проверить, не в этом ли проблема, попробуйте временно заменить строку подключения на ту, которая использует проверку подлинности SQL. Если это проблема, вы можете либо настроить веб-сервер для запуска ASP под другой учетной записью пользователя, которому предоставлен доступ к базе данных (предпочтительно), либо предоставить доступ к базе данных идентификатору текущего веб-сервера. Или, конечно, вы можете придерживаться аутентификации SQL.

person Jacob    schedule 05.07.2009

Либо сервер, на котором выполняется ASP, не имеет работающего сервера базы данных, либо сервер базы данных должен иметь имя экземпляра. Одной из распространенных ошибок является забывание добавить имя экземпляра SQLEXPRESS для установки SQLExpress.

person Jacob    schedule 05.07.2009
comment
Я не использую SQLExpress. Я использую локальный хост - person Csharp; 05.07.2009