본문

IIS와 443포트에서의 WSAEACCES (10013) 문제 해결하기

Windows Server 2008에서 443포트를 열고자 하는데 다음과 같은 오류가 발생했다. 
error code: 10013 (액세스 권한에 의해 숨겨진 소켓에 액세스를 시도했습니다.)

좀 더 오류문장이 길었는데 문제 해결 후에 기록하려고 하니 기억나는게 이거밖에 없어서 간략하게 기록해 본다
WSAEACCES (10013) 오류에 대해알아보자면...

•번역 : 사용 권한이 거부되었습니다.
•설명 : 방식으로 액세스 권한에 의해 숨겨진 소켓에 액세스를 시도했습니다. 예를 들어, 이 오류는 브로드캐스트 주소를 sendto 사용되지만 setsockopt(SO_BROADCAST) 사용하여 브로드캐스트 권한이 설정되지 때 발생합니다. 다른 가능한 WSAEACCES 오류 이유는 있는 바인딩 (Wsapiref_6vzm.asp) 함수가 호출될 때 (있는 Microsoft Windows NT 4.0 서비스 팩 4 [SP4] 이상을), 단독 사용 권한으로 동일한 주소를 다른 프로그램, 서비스 또는 커널 모드 드라이버가 바인딩됩니다. 이러한 단독 액세스를 Windows NT 4.0 SP4 및 나중에 새로운 기능이 있으며 SO_EXCLUSIVEADDRUSE 옵션을 사용하여 구현됩니다.

물론 443포트를 사용하는 IIS가 용의선상에 올라 기존의 바인딩을 모두 제거하고(비록 443포트의 바인딩은 발견되지 않았지만) 해도 되지 않아 구글링을 열심히 하다가 발견하였다.

만약 IIS 6.0을 사용한다면 다음 페이지가 유용할 것으로 생각된다. 실제 사용은 해보지 않았지만 꽤 유용한 링크인것 같아 기록해놓는다. 즉 IP Inclusion list에 아이피를 등록한 경우 포트 바인딩이 잘못된다는 이야기..
FIX: IIS 6.0 incorrectly binds to ports when IP addresses are added to the IP inclusion list

그리고 IIS 7.0에서는 (사용한 바로는) 아래 방법이 통하는 것으로 보인다. 바로 아래 사이트의 내용이 해결방안을 제시한건 아니고, 영감을 줬다고 해야하나?
You receive a "The process cannot access the file because it is being used by another process" error message when you try to start a Web site in the Internet Information Services MMC snap-in

해결 방안은 레지스트리 편집기에서(regedit) 아래항목을 검색해보고 그 하부의 있는 443 바인딩을 모두 해제해 주는것이다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList

그리고 여기서 나온 netstat도 자주 사용되지만 이것보다는 GUI로 제작된 CurrPorts를 사용하는 편이 더욱 편하다. 특히 현재 포트를 점유하는 프로세스를 볼 수 있어서 원인 파악이 더욱 쉽게 된다. 이번 경우에는 CurrPorts를 사용해서 확인해 본 결과 다른 프로세스도 아닌 System 프로세스에서 443포트를 점유하고 있었기 때문에 더 빠른 원인 파악이 가능하였다.

댓글

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.