현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

ASP 클라이언트를 사용하여 Visual Basic IDE에서 COM+ 구성 요소를 디버깅할 때 오류가 발생한다

현상
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+ 구성 요소를 실행할 때는 오류가 발생하지 않습니다.
원인
익명 액세스를 사용하는 경우 대개 IUSR_<machinename> 계정인 인증 사용자는 DCOM 서버(이 경우 VB6.exe)에 액세스할 적절한 권한이 없습니다. Visual Basic IDE에서 COM+ 구성 요소를 디버깅하면 시작하는 사용자는 대화형 사용자이고 DCOM 서버에 액세스하는 사용자는 인증 사용자입니다.

VB6.exe용 DCOM 항목이 없기 때문에 DCOM은 기본 권한을 사용합니다. Windows 2000 및 Windows XP에서 DCOM 기본 액세스 권한은 기본적으로 시스템 계정과 시작하는 사용자에게만 부여됩니다. 시작하는 사용자와 DCOM 서버에 액세스하는 사용자는 같지 않기 때문에 "현상" 절에서 설명하는 오류 메시지가 발생합니다.
해결 방법
권장되는 해결 방법에는 두 가지가 있습니다.

해결 방법 1

VB6.exe용 DCOM 항목을 레지스트리에 추가합니다. 이렇게 하면 Visual Basic에서 COM+ 구성 요소를 디버깅하기 위해 특정 DCOM 권한을 설정할 수 있습니다.
  1. DCOM에서 VB ASP Debugging 항목을 만듭니다.
    1. Microsoft 메모장이나 기타 텍스트 편집기를 시작하고 다음 구문을 대/소문자를 구분하여 입력합니다.
      REGEDIT4[HKEY_CLASSES_ROOT\CLSID\{70F214BA-94E2-4bdf-8F30-32CB4A905E4D}]@="VB ASP Debugging"[HKEY_CLASSES_ROOT\CLSID\{70F214BA-94E2-4bdf-8F30-32CB4A905E4D}\LocalServer32]@="vb6.exe"[HKEY_CLASSES_ROOT\AppID\vb6.exe]"AppId"="{70F214BA-94E2-4bdf-8F30-32CB4A905E4D}"
    2. 파일을 Vbaspdbg.reg로 저장합니다.
    3. Vbaspdbg.reg 파일을 저장한 폴더를 찾아 파일을 두 번 누릅니다. Windows 레지스트리에 자동으로 등록됩니다.
  2. Visual Basic ASP 디버깅을 위해 Everyone 계정을 DCOM 권한에 추가합니다.

    Windows 2000
    1. DCOMCNFG를 시작합니다. 시작 메뉴에서 실행을 누른 다음 대화 상자에 dcomcnfg를 입력합니다.
    2. DCOM 구성 등록 정보 페이지에서 응용 프로그램 탭을 누르고 목록에서 VB ASP Debugging을 선택한 다음 등록 정보를 누릅니다.
    3. VB ASP Debugging 등록 정보 페이지에서 보안 탭을 누른 다음 사용자 정의 액세스 권한 확인란을 눌러 선택합니다. 편집을 누릅니다.
    4. 레지스트리 값 사용 권한 창에서 추가를 누른 다음 액세스 허용Everyone을 추가합니다.
    5. 확인을 누른 다음 적용을 눌러 변경 사항을 적용하고 DCOM 구성 등록 정보 페이지를 종료합니다.
    6. 컴퓨터를 다시 시작하여 변경 사항을 적용합니다.
    Windows XP

    1. COM+ 탐색기를 시작합니다. 시작 메뉴에서 관리 도구를 누른 다음 구성 요소 서비스를 누릅니다.
    2. 구성 요소 서비스, 컴퓨터, 내 컴퓨터, DCOM 구성을 차례로 눌러 확장합니다.
    3. VB ASP Debugging을 마우스 오른쪽 단추로 누른 다음 속성을 누릅니다.
    4. 보안 탭의 액세스 권한에서 사용자 지정을 선택한 다음 편집을 누릅니다.
    5. 액세스 권한 창에서 추가를 누른 다음 Everyone에 대한 액세스 권한을 허용으로 설정합니다.
    6. 확인, 적용, 확인을 차례로 눌러 변경 사항을 적용하고 DCOM 구성 속성 페이지를 종료합니다.
    7. 컴퓨터를 다시 시작하여 변경 사항을 적용합니다.

해결 방법 2

  1. 디버깅 목적으로 ASP 페이지가 있는 가상 디렉터리의 응용 프로그램 보호를 "높음(격리됨)"으로 구성합니다. 이렇게 하면 ASP 페이지가 전용 프로세스를 강제로 실행하여 웹 사이트의 나머지 부분에 영향을 주지 않고 보안을 변경할 수 있습니다.
    1. 인터넷 서비스 관리자를 시작합니다.
    2. ASP 페이지가 있는 가상 디렉터리를 마우스 오른쪽 단추로 누른 다음 등록 정보를 누릅니다.
    3. 가상 디렉터리 탭을 누른 다음 응용 프로그램 보호 드롭다운 목록에서 높음(격리됨)을 선택합니다.
    4. 적용을 누릅니다.
  2. 가상 디렉터리에 대해 익명 액세스를 해제하고 Windows 통합 인증 또는 기본 인증이 선택되었는지 확인합니다.
    1. 가상 디렉터리에 대한 등록 정보 대화 상자에서 디렉터리 보안 탭을 누릅니다.
    2. 익명 액세스 및 인증 제어에서 편집을 누릅니다.
    3. 익명 액세스 확인란 선택이 취소되었는지 확인합니다.
    4. Windows 통합 인증 또는 기본 인증을 누릅니다.
  3. Windows 통합 인증을 사용하는 경우에는 클라이언트 브라우저를 실행하여 Visual Basic IDE 디버그 세션과 동일한 사용자 계정에서 ASP 페이지에 액세스합니다. 기본 인증을 사용하는 경우 Visual Basic IDE 디버그 세션이 실행되고 있는 것과 동일한 사용자 계정의 사용자 이름과 암호를 입력합니다.

    참고 두 번째 해결 방법은 COM "기본 액세스 권한"이 변경되지 않았다고 가정합니다. "기본 액세스 권한"이 변경되지 않은 경우 COM은 시스템 계정과 서버 ID에 권한을 부여하는 액세스 제어 목록(ACL)을 구성합니다. 이 시나리오에서 서버 ID는 Visual Basic IDE 디버그 세션을 실행 중에 로그인한 사용자입니다. DCOM "기본 액세스 권한"이 변경된 경우 두 번째 해결 방법을 사용하려면 Visual Basic IDE 디버그 세션을 실행 중인 사용자 계정을 "기본 액세스 권한"에 추가해야 합니다. 이것은 DCOMCNFG를 사용하여 수행할 수 있습니다. 자세한 내용은 "추가 정보" 절의 "COM 보안" 링크를 참조하십시오.
현재 상태
이것은 의도적으로 설계된 동작입니다.
추가 정보
이 문제는 Microsoft Windows NT 4.0 및 IIS 4.0에서는 발생하지 않습니다. Windows NT 4.0 기반 컴퓨터에서 발생하는 ASP 0178 오류에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
198432 PRB: COM 개체를 시작하는 서버 개체 오류 'ASP 0178'
COM 보안에 대한 자세한 내용은 다음 MSDN(Microsoft Developer Network) 웹 사이트를 방문하십시오.



Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.
속성

문서 ID: 259725 - 마지막 검토: 09/16/2005 11:31:00 - 수정: 4.1

Microsoft Active Server Pages 4.0, Microsoft Visual Basic 6.0 Enterprise Edition

  • kbbug kbdebug kbprb kbvbp600 kbcomplus KB259725
피드백
/html>s"> >display: none; " src="https://c1.microsoft.com/c.gif?DI=4050&did=1&t=">l>r varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write("