Ответ 1
Попробуйте изменить поставщика на sqlncli10
:
cn.Open "Provider=SQLNCLI10;Server=remoteServer\SQL2008R2;Database=DB;UID=MyUser;PWD=pa55word;"
Возможно, имя на вашем компьютере отличается.:)
Я могу подключиться к SQL Server 2008 R2, когда я использую Provider=SQLOLEDB
в моей строке подключения. Но когда я использую Provider=SQLNCLI
в строке подключения, я не могу подключиться.
ADODB.Connection error '800a0e7a'
Поставщик не найден. Это может не правильно установить.
/test.asp, строка 7
Код, написанный внутри test.asp
, ниже
<%
Set cn = Server.CreateObject("ADODB.Connection")
'Doesn't work
cn.Open "Provider=SQLNCLI;Server=remoteServer\SQL2008R2;Database=DB;UID=MyUser;PWD=pa55word;"
'Works Perfectly
'cn.Open "Provider=SQLOLEDB;Server=remoteServer\SQL2008R2;Database=DB;UID=MyUser;PWD=pa55word;"
cn.CommandTimeout = 900
cn.Close
Response.write("dfjslkfsl")
%>
SQL Server, с которым я пытаюсь подключиться (с классической ASP-страницы в моем IIS 7 на Windows 7), расположен на другом сервере в другой сети, к которой я подключаюсь, используя VPN.
Я протестировал собственный клиент sql, создав собственное клиентское системное DSN-соединение для SQL Server с указанным сервером Sql 2008 R2 (которое подключено через VPN) от администратора данных DOS ODBC. И он успешно подключился.
Эти снимки из моей системы Windows 7
Попробуйте изменить поставщика на sqlncli10
:
cn.Open "Provider=SQLNCLI10;Server=remoteServer\SQL2008R2;Database=DB;UID=MyUser;PWD=pa55word;"
Возможно, имя на вашем компьютере отличается.:)
Для пользователей, имеющих только установленную Visual Studio 2012, можно использовать Provider=SQLNCLI11
, поскольку SQLNCLI10
недоступен для меня в моей новой установленной системе.
cn.Open "Provider=SQLNCLI11;Server=remoteServer\SQL2008R2;Database=DB;UID=MyUser;PWD=pa55word;"
Это может быть связано с фактом VPN. Возможно, приложение действует как другой пользователь, который не имеет доступа к VPN.
Попробуйте отключить анонимную аутентификацию в IIS и/или сделать идентификатор пула приложений одинаковым пользователем, который вы используете для входа в систему Windows 7, и посмотрите, устраняет ли это проблему.
Работает отлично:
"Provider=SQLNCLI;Server=xxxxxxxx;uid=sa;pwd=xxxxxx;database=xxxxxx;"