DetailPage-MSS-KB

기술 자료

기술 자료: 229564 - 마지막 검토: 2007년 2월 15일 목요일 - 수정: 4.3

 

이 페이지에서

현상

SQL Server Microsoft ADO (ActiveX 데이터 개체) 연결에서 SQL Server 응용 프로그램 역할을 사용하면 SQL Server 7.0 연결할 때 다음 오류 메시지가 나타날:
sp_setapprole 올바르게 호출되지 없습니다. 자세한 내용은 설명서를 참조하십시오.
SQL Server 2000 연결할 때 같이 오류가 나타날 수 있습니다.
[DBNETLIB][ConnectionRead (WrapperRead()).]일반 네트워크 오류가 발생했습니다. 네트워크 설명서를 참조하십시오
이 오류는 OLE DB 자원 그룹에서 할당된 ADO 연결에서 sp_setapprole 호출될 때 발생합니다. 이 오류는 SQLOLEDB 공급자 또는 SQL Server ODBC 드라이버.

이 문서에서 설명하는 제한 수도 있는 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 풀링 해제할 수 데이터 공급자를 추가하여 "풀링 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 = Nothing
End Sub

Private 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 = strConnect
cn.Open
 
 sSQL = "sp_setapprole 'order_entry', 'password'"
 cn.Execute sSQL
 Set GetConnection = cn
End Function
				

참조

SQL 온라인, 항목: "응용 프로그램 보안 및 응용 프로그램 역할"

OLE DB 서비스 비활성화 방법에 대한 자세한 내용은 기술 문서 "풀링 있는 Microsoft 데이터 액세스 구성," 사용 가능한 MSDN Online 참조하십시오.
http://msdn2.microsoft.com/en-us/library/ms810829.aspx (http://msdn2.microsoft.com/en-us/library/ms810829.aspx)
OLE DB 서비스를 해제하는 방법에 대한 자세한 내용은 OLE DB Readme.txt 파일을 참조하십시오.

본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
  • Microsoft Data Access Components 2.8
키워드: 
kbmt kbfaq kbpending kbprb KB229564 KbMtko
기계 번역된 문서기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
공유
추가 지원 옵션
Microsoft Community 지원 포럼
직접 문의하기
Microsoft Certified Partner 찾기
Microsoft Store