Ошибка поставщика не обнаружена после перехода с IIS 6.0 на IIS 8.5

У меня есть сайт ASP, который отлично работает на Windows Server 2003 и IIS 6.0. Я перешел на Windows Server 2012 R2 IIS 8.5

Я получаю сообщение об ошибке при попытке подключения к базе данных:

Провайдер не найден. Возможно, он установлен неправильно

Подробности об ошибке:
2014-11-05 10:33:06 10.30.62.21 POST _main.asp | 50 | 800a0e7a | Provider_cannot_be_found._It_may_not_be_properly_installed. 80 - XX.XX.XX.XX Mozilla / 4.0 + (совместимый; + MSIE + 7.0; + Windows + NT + 6.1; + WOW64; + Trident / 5.0; + SLCC2; +. NET + CLR + 2.0.50727; + .NET + CLR + 3.5.30729; +. NET + CLR + 3.0.30729; +. NET4.0C; +. NET4.0E; +. NET + CLR + 1.1.4322; + InfoPath.3) /bottomright.asp ? sAction = помощь 500 0 0 1859

Моя строка подключения выглядит следующим образом:

GetConnectionString = "Provider=SQLNCLI.1;Data Source=" & m_DALServer & _
                      ";User Id=user;Password=pwd;Connect Timeout=3;"

Я проверил ODBC Data Source Administrator (32 бит) на новом сервере (2012) и нашел ниже два связанных драйвера.

  1. Собственный клиент SQL 2005.90.4035.00 Microsoft Corporation SQLNCLI.DLL
  2. SQL Server 6.03.9600.163.84 Корпорация Microsoft SQLSRV32.DLL

Я включил 32-разрядный пул приложений, а для управляемого конвейера - классический.


person Hardik    schedule 05.11.2014    source источник


Ответы (2)


Некоторые драйверы были установлены службой технической поддержки. Какие драйверы я не уверен. Но из-за исправлений я увидел SQL Server Native Client 10, доступный в источниках ODBC, и моя проблема была решена без каких-либо изменений кода.

Если у кого-то такая же проблема, проверьте, установлены ли на сервере правильные драйверы. Вы также можете проверить, перейдя в Источники ODBC (32 бит) и проверьте, доступен ли SQL Server Native Client 10.

Всем спасибо за ваше время.

person Hardik    schedule 07.11.2014

Попробуйте использовать SQLCNCLI и SQLOLEDB в качестве поставщика данных.
Это оба Драйверы OLEDB, а не ODBC.

Вот список строк подключения для каждой версии SQL из https://web.archive.org/web/20130302124154/http://connectionstrings.com/sql-server:

  • SQLNCLI - для SQL Server 2005
  • SQLNCLI10 - для SQL Server 2008
  • SQLNCLI11 - для SQL Server 2012
person John    schedule 05.11.2014
comment
Привет, Джон! Приложение работает с SQLNCLI, но в моей существующей среде оно работает с SQLNCLI.1. Возможно, такое же приложение будет работать на новом сервере с SQLNCLI.1? Будут ли работать на сервере какие-либо патчи или установка? - person Hardik; 07.11.2014
comment
Вы сами ясно нашли ответ. Как вы обнаружили, существуют разные версии Native Client, и то, какую из них использовать в вашей строке подключения, зависит от того, какая из них установлена ​​на вашем сервере. Если версия Native Client не установлена ​​(что часто бывает, если сервер подключается к удаленной базе данных), то SQLOLEDB почти наверняка будет там в качестве запасного варианта. NB. На 64-битной машине вы должны обнаружить, что также установлены 64-битные версии драйверов. - person John; 07.11.2014