Ошибки роль приложения SQL OLE DB в пул ресурсов

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

Эта статья на английском языке:229564
Эта статья помещена в архив. Она предлагается "как есть" и обновляться не будет.
Проблема
При включении роли приложения SQL Server на Объекты данных ActiveX (ADO) подключение к SQL Server, может появиться следующее сообщение об ошибке при подключении к SQL Server 7.0.
sp_setapprole не был вызван неправильно. Обратитесь к документация для получения дополнительных сведений.
При подключении к SQL Server 2000, сообщение об ошибке может отображаться следующим образом:
[DBNETLIB][ConnectionRead (WrapperRead()).]Общая ошибка сети. Проверьте свой Документация сети
Эта ошибка возникает, когда вызывается процедура sp_setapprole для подключения ADO, занятый из пула ресурсов OLE DB. Эта ошибка возникает с поставщика SQLOLEDB или ODBC для SQL Server драйвер.

Также существует ограничение, описанное в данной статье в SQL Server.NET поставщик данных и в OLE DB.NET поставщик данных при используемый поставщик SQLOLEDB OLE DB. При попытке установить роль приложения принимать подключения, который взят из пула подключений, следующее сообщение об ошибке:
Общая ошибка сети
Причина
В макете, после включения роли приложения При подключении клиента к серверу SQL Server нельзя восстановить контекст безопасности Это подключение. Таким образом, когда пользователь завершает сеанс SQL Server и Отключение от сервера, сеанс не многократного использования. Тем не менее OLE DB Создание пулов ресурсов возвращает закрытое подключение в пул и ошибки Происходит, когда это подключение используется повторно, и клиентское приложение пытается выполнить сброс контекст безопасности подключения, вызывающий sp_setapprole еще раз.
Временное решение
Доступно только устранить проблему, необходимо отключить ресурс OLE DB Пул, какие ADO использует по умолчанию. Это можно сделать путем добавления «служб OLE DB = -2 "в строке соединения ADO, как показано ниже:
'For SQLOLEDB provider 'strConnect = "Provider=SQLOLEDB;server=SQL7Web;OLE DB Services = -2;uid=AppUser;pwd=AppUser;initial catalog=northwind"' For MSDASQL provider 'strConnect = "DSN=SQLNWind;UID=Test;PWD=Test; OLE DB Services= -2"				

Пул может быть отключен для SQL Server.NET данных Поставщик, добавив "Pooling = False" в строке подключения.
Дополнительная информация
Следующий код воспроизводит сообщение об ошибке:
Private Sub Command2_Click() Dim adoCn1 As ADODB.Connection Dim adoCn2 As ADODB.Connection Set adoCn1 = GetConnection  Set adoCn2 = GetConnection Set adoCn2 = Nothing Set adoCn2 = GetConnection Set adoCn2 = Nothing Set adoCn2 = GetConnection  'Gives errors for both SQLOLEDB and ODBC Set adoCn2 = NothingEnd SubPrivate Function GetConnection() As ADODB.Connection Dim cn As ADODB.Connection Dim sSQL As String Dim strConnect As String Set cn = New ADODB.Connection 'For OLE DB provider strConnect = "Provider=SQLOLEDB;server=myServer;uid=AppUser;pwd=AppUser;initial catalog=northwind"'Turn off Pooling ( all other services are enabled )'strConnect = "Provider=SQLOLEDB;server=myServer;OLE DB Services= -2;uid=AppUser;pwd=AppUser;initial catalog=northwind"  'For ODBC driver 'strConnect = "DSN=SQLNWind;UID=Test;PWD=Test; "'Turn off Pooling'strConnect = "DSN=SQLNWind;UID=Test;PWD=Test; OLE DB Services= -2"cn.ConnectionString = strConnectcn.Open  sSQL = "sp_setapprole 'order_entry', 'password'" cn.Execute sSQL Set GetConnection = cnEnd Function				

ССЫЛКИ

Документации по SQL; раздел: «безопасность и приложения Роли»

Для получения дополнительных сведений об отключении службы OLE DB, см. Техническая статья «Группирование в компоненты доступа К данным,» доступные в MSDN Online: Для получения дополнительных сведений о том, как отключить службы OLE DB см. файл OLE DB Readme.txt.

Свойства

Номер статьи: 229564 — последний просмотр: 12/05/2015 14:13:42 — редакция: 4.0

Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft Data Access Components 2.1, Microsoft Data Access Components 2.5, Microsoft Data Access Components 2.6, Microsoft Data Access Components 2.7

  • kbnosurvey kbarchive kbpending kbprb kbmt KB229564 KbMtru
Отзывы и предложения