본문 바로가기

Web App/IIS

IIS 서비스 : HTTP.sys, W3SVC, WAS, W3WP

클라이언트가 IIS에 HTTP 요청을 할 때 이를 통해 이동하는 드라이버와 서비스 계층들이 있습니다.

여기에서 주요 계층을 어떻게 통과하는지 개요를 간단하게 설명해보겠습니다.

 

HTTP.sys는 커널 모드로 HTTP/HTTPS의 프로토콜 리스너입니다.

HTTP.sys는 네트워크에서 HTTP 요청을 수신하고 요청을 다음 계층으로 전달한 다음 처리된 응답은 클라이언트 브라우저로 반환합니다. 

이에 대한 로그는 C:\Windows\System32\LogFiles\HTTPERR에 작성됩니다.

 

 

W3SVC는 World Wide Web(WWW) 퍼블리싱 서비스로 HTTP.sys용 사용자 모드 리스너 어댑터입니다.

이에 대한 로그는 시스템 이벤트 뷰어에 작성됩니다.

 

Windows process Activation Service인 WAS는 애플리케이션풀 구성과 작업자 프로세스 (w3wp)를 관리합니다.

기본적으로 WAS는 아래 그림에 표시된 모든 구성 파일을 수집하여 효과적인 구성을 생성하고 "C:\inetpub\temp\appPools\ " 디렉토리에 저장합니다. 이를 통해 HTTP 사이트와 HTTP가 아닌 사이트에 대해 동일한 구성 및 프로세스 모델을 사용할 수 있습니다. 또한 HTTP 기능이 필요하지 않은 경우 W3SVC 없이 WAS를 실행할 수 있습니다.

예를 들어, HTTP.sys에서 HTTP 요청을 수신할 필요가 없는 경우 W3SVC를 실행하지않고도 NetTcpActivator와 같은 WCF 리스너 어댑터를 통해 웹 서비스를 관리할 수 있습니다.

ApplicationHost.config가 변경되면 WAS는 알림을 받고 리스너 어댑터를 업데이트 합니다.

이에 대한 로그는 시스템 이벤트 뷰어에 작성됩니다.

 

W3WP는 어플리케이션 풀이라고도 하는 IIS 작업자 프로세스 입니다.

이에 대한 로그는 시스템 이벤트 뷰어에 IIS로그는 C:\inetpub\logs\LogFiles\W3SVC에 기록됩니다.

 

WAS 구성에 관련된 파일들

- machine.config 파일은 %windir%\Microsoft.NET\Framework\framework_version\Config에 있습니다.

 

- .NET Framework의 Root web.config 파일은 %windir%\Microsoft.NET\Framework\Framework_version\Config에 있습니다.

 

- applicatonHost.config 파일은 %windir%\system32\inetsrv\config에 있습니다.

 

- web.config 파일은 사이트, 애플리케이션 디렉토리에 있습니다.

 

- WAS의 유효 구성은 C:\inetpub\temp\appPools 디렉토리에 있습니다.

 

출처 : IIS Services: HTTP.sys, W3SVC, WAS, W3WP, oh my! - Microsoft Community Hub