IIS 6.0에서 CAsyncSocket이나 CSocket을 사용하는 COM 오브젝트의 메소드를 ASP페이지를 통해 호출하면 AsyncSocket::Create()함수를 호출하는 부분에서 권한문제로 Exception이 발생하여 소켓생성에 실패하게 된다.
이 같은 문제는 일반 Application이나, IE javascript, Window Scripting Host 등에서는 발생하지 않는 문제이고, 심지어 IIS 5.0에서도 잘 실행이 된다.
문제의 원인은 IIS 6.0이 작업자 프로세스 격리모드를 사용하므로써 IIS 프로세스의 접근권한이 제한받기 때문에 생기는 것으로 생각되는데, 해결 가능한 방법은 다음 두가지가 있다.
1. COM+ 응용프로그램으로 등록
문제가 되는 COM 컴퍼넌트를 COM+응용프로그램의 구성요소로 등록한다.
이 때, 해당 COM+ 응용프로그램의 속성 창을 열어 [보안]탭의 응용프로그램 엑세스 검사 수행 옵션을 꺼주어야 한다.
2. IIS 6.0의 실행모드를 IIS 5.0 격리모드로 변경하는 방법
IIS 스냅인에서 "웹 사이트"의 속성 창을 열어 [서비스] 탭을 선택한 다음, "IIS 5.0 격리모드에서 WWW서비스 실행" 옵션을 체크한 다음 [확인]을 누르고 IIS서비스를 재시작한다.