프로그래밍/JAVA
오류현상 - 서버 개체, ASP 0178 (0x800A0005) 사용 권한을 확인하는 동안 Server.CreateObject를 호출하지 못했습니다
라제폰
2009. 3. 6. 19:32
ASP 클라이언트를 사용하여 Visual Basic IDE에서 COM+ 구성 요소를 디버깅할 때 오류가 발생한다
<script>function loadTOCNode(){}</script>기술 자료 ID | : | 259725 |
마지막 검토 | : | 2005년 9월 16일 금요일 |
수정 | : | 4.0 |
현상
<script type=text/javascript>loadTOCNode(1, 'symptoms');</script>Microsoft Windows 2000 기반 컴퓨터의 Visual Basic 6.0에서 Microsoft COM+ 버전 1.0 구성 요소를 디버깅하면 클라이언트가 Active Server Pages(ASP) 페이지일 때 브라우저에 다음과 같은 내용의 오류 메시지가 나타날 수 있습니다.
서버 개체, ASP 0178 (0x800A0005) 사용 권한을 확인하는 동안 Server.CreateObject를 호출하지 못했습니다. 이 개체에 액세스할 수 없습니다.
Microsoft Windows XP 기반 컴퓨터의 Visual Basic 6.0에서 Microsoft COM+ 버전 1.5 구성 요소를 디버깅하면 클라이언트가 Active Server Pages(ASP) 페이지일 경우 브라우저에 다음과 같은 내용의 오류 메시지가 나타날 수 있습니다.
서버 개체, ASP 0178 (0x800A0005) 사용 권한을 확인하는 동안 Server.CreateObject를 호출하지 못했습니다. 이 개체에 액세스할 수 없습니다.
Visual Basic 통합 개발 환경(IDE) 내에서 COM+ 구성 요소를 실행할 때만 이 문제가 발생합니다. COM+ 응용 프로그램 내에서 컴파일된 상태에서 COM+ 구성 요소를 실행할 때는 오류가 발생하지 않습니다.
원인
<script type=text/javascript>loadTOCNode(1, 'cause');</script>익명 액세스를 사용하는 경우 대개 IUSR_<machinename> 계정인 인증 사용자는 DCOM 서버(이 경우 VB6.exe)에 액세스할 적절한 권한이 없습니다. Visual Basic IDE에서 COM+ 구성 요소를 디버깅하면 시작하는 사용자는 대화형 사용자이고 DCOM 서버에 액세스하는 사용자는 인증 사용자입니다.
VB6.exe용 DCOM 항목이 없기 때문에 DCOM은 기본 권한을 사용합니다. Windows 2000 및 Windows XP에서 DCOM 기본 액세스 권한은 기본적으로 시스템 계정과 시작하는 사용자에게만 부여됩니다. 시작하는 사용자와 DCOM 서버에 액세스하는 사용자는 같지 않기 때문에 "현상" 절에서 설명하는 오류 메시지가 발생합니다.
VB6.exe용 DCOM 항목이 없기 때문에 DCOM은 기본 권한을 사용합니다. Windows 2000 및 Windows XP에서 DCOM 기본 액세스 권한은 기본적으로 시스템 계정과 시작하는 사용자에게만 부여됩니다. 시작하는 사용자와 DCOM 서버에 액세스하는 사용자는 같지 않기 때문에 "현상" 절에서 설명하는 오류 메시지가 발생합니다.
해결 방법
<script type=text/javascript>loadTOCNode(1, 'resolution');</script>권장되는 해결 방법에는 두 가지가 있습니다.
해결 방법 1
<script type=text/javascript>loadTOCNode(2, 'resolution');</script> VB6.exe용 DCOM 항목을 레지스트리에 추가합니다. 이렇게 하면 Visual Basic에서 COM+ 구성 요소를 디버깅하기 위해 특정 DCOM 권한을 설정할 수 있습니다.1. | DCOM에서 VB ASP Debugging 항목을 만듭니다.
| ||||||||||||||||||||||||||
2. | Visual Basic ASP 디버깅을 위해 Everyone 계정을 DCOM 권한에 추가합니다. Windows 2000
|
해결 방법 2
<script type=text/javascript>loadTOCNode(2, 'resolution');</script>1. | 디버깅 목적으로 ASP 페이지가 있는 가상 디렉터리의 응용 프로그램 보호를 "높음(격리됨)"으로 구성합니다. 이렇게 하면 ASP 페이지가 전용 프로세스를 강제로 실행하여 웹 사이트의 나머지 부분에 영향을 주지 않고 보안을 변경할 수 있습니다.
| ||||||||
2. | 가상 디렉터리에 대해 익명 액세스를 해제하고 Windows 통합 인증 또는 기본 인증이 선택되었는지 확인합니다.
| ||||||||
3. | Windows 통합 인증을 사용하는 경우에는 클라이언트 브라우저를 실행하여 Visual Basic IDE 디버그 세션과 동일한 사용자 계정에서 ASP 페이지에 액세스합니다. 기본 인증을 사용하는 경우 Visual Basic IDE 디버그 세션이 실행되고 있는 것과 동일한 사용자 계정의 사용자 이름과 암호를 입력합니다. 참고 두 번째 해결 방법은 COM "기본 액세스 권한"이 변경되지 않았다고 가정합니다. "기본 액세스 권한"이 변경되지 않은 경우 COM은 시스템 계정과 서버 ID에 권한을 부여하는 액세스 제어 목록(ACL)을 구성합니다. 이 시나리오에서 서버 ID는 Visual Basic IDE 디버그 세션을 실행 중에 로그인한 사용자입니다. DCOM "기본 액세스 권한"이 변경된 경우 두 번째 해결 방법을 사용하려면 Visual Basic IDE 디버그 세션을 실행 중인 사용자 계정을 "기본 액세스 권한"에 추가해야 합니다. 이것은 DCOMCNFG를 사용하여 수행할 수 있습니다. 자세한 내용은 "추가 정보" 절의 "COM 보안" 링크를 참조하십시오. |
현재 상태
<script type=text/javascript>loadTOCNode(1, 'status');</script>이것은 의도적으로 설계된 동작입니다.
추가 정보
<script type=text/javascript>loadTOCNode(1, 'moreinformation');</script>이 문제는 Microsoft Windows NT 4.0 및 IIS 4.0에서는 발생하지 않습니다. Windows NT 4.0 기반 컴퓨터에서 발생하는 ASP 0178 오류에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹 (http://support.microsoft.com/newsgroups/default.aspx)에 참여하시기 바랍니다.
198432 (http://support.microsoft.com/kb/198432/) PRB: COM 개체를 시작하는 서버 개체 오류 'ASP 0178'
COM 보안에 대한 자세한 내용은 다음 MSDN(Microsoft Developer Network) 웹 사이트를 방문하십시오.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/htm/security_0icz.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/htm/security_0icz.asp)
Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹 (http://support.microsoft.com/newsgroups/default.aspx)에 참여하시기 바랍니다.