IIS 7 웹 서버 코어의 통합 요청 처리 파이프라인을 사용하면 네이티브 코드 개발자가 C++에서 HTTP 모듈을 작성할 수 있지만 네이티브 코드 및 관리 코드 개발자가 사용할 수 있는 이벤트 알림은 동일하지 않습니다. C#과 같은 관리되는 언어에서 네이티브 코드로 HTTP 모듈을 마이그레이션하는 개발자는 새 모듈을 만들 때 이러한 차이점을 해결해야 합니다.
전역 알림
이제 개발자는 IIS 7을 사용하여 전역 수준에서 알림을 처리하는 네이티브 코드 HTTP 모듈을 만들 수 있습니다. 이전 버전의 IIS에서 개발자는 요청 수준에서만 알림을 처리하는 HTTP 모듈을 만들 수 있었습니다. 전역 수준에서 알림을 처리하는 HTTP 모듈은 다양한 서버 수준 이벤트에 대한 알림을 처리하는 데 사용됩니다.
다음 표에서는 네이티브 코드 개발자가 사용할 수 있는 전역 알림 메서드를 나열합니다.
| 이벤트 알림 방법 | Description |
|---|---|
| OnGlobalApplicationResolveModules | IIS가 등록된 모듈을 확인할 때 호출됩니다. |
| OnGlobalApplicationStart | IIS가 애플리케이션을 시작할 때 호출됩니다. |
| OnGlobalApplicationStop | IIS가 애플리케이션을 종료할 때 호출됩니다. |
| OnGlobalCacheCleanup | IIS가 캐시를 지울 때 호출됩니다. |
| OnGlobalCacheOperation | IIS가 캐시 관련 작업을 수행할 때 호출됩니다. |
| OnGlobalConfigurationChange | 구성 파일을 변경할 때 호출됩니다. |
| OnGlobalCustomNotification | 모듈이 사용자 정의 알림을 발생할 때 호출됩니다. |
| OnGlobalFileChange | 웹 사이트 내의 파일이 변경될 때 호출됩니다. |
| OnGlobalHealthCheck | 상태 관련 작업이 실행될 때 호출됩니다. |
| OnGlobalPreBeginRequest | 요청이 통합 요청 처리 파이프라인에 들어가기 전에 호출됩니다. |
| OnGlobalRSCAQuery | Run-Time 상태 및 제어 쿼리가 실행될 때 호출됩니다. |
| OnGlobalStopListening | IIS가 새 요청 수락을 중지할 때 호출됩니다. |
| OnGlobalThreadCleanup | IIS가 스레드 풀에 스레드를 반환할 때 호출됩니다. |
| OnGlobalTraceEvent | 추적 이벤트가 발생할 때 호출됩니다. |
요청 알림 비교
네이티브 코드 및 관리 코드 HTTP 모듈에 대한 요청 알림 메서드는 여러 면에서 유사하지만 완전히 유사하지는 않습니다. 예를 들어 결정적 요청 알림 메서드 목록은 네이티브 코드 및 관리 코드 모듈에 대해 거의 동일하지만 비결정적 요청 알림 메서드 목록은 크게 다릅니다.
결정적 요청 알림 Native-Code
다음 표에서는 네이티브 코드 개발자가 사용할 수 있는 결정적 요청 알림 메서드를 나열합니다.
| 이벤트 알림 방법 | 이벤트 후 알림 방법 |
|---|---|
| OnBeginRequest | OnPostBeginRequest |
| OnAuthenticateRequest | OnPostAuthenticateRequest |
| OnAuthorizeRequest | OnPostAuthorizeRequest |
| OnResolveRequestCache | OnPostResolveRequestCache |
| OnMapRequestHandler | OnPostMapRequestHandler |
| OnAcquireRequestState | OnPostAcquireRequestState |
| OnPreExecuteRequestHandler | OnPostPreExecuteRequestHandler |
| OnExecuteRequestHandler | OnPostExecuteRequestHandler |
| OnReleaseRequestState | OnPostReleaseRequestState |
| OnUpdateRequestCache | OnPostUpdateRequestCache |
| OnLogRequest | OnPostLogRequest |
| OnEndRequest | OnPostEndRequest |
결정적 요청 알림 Managed-Code
다음 표에서는 관리 코드 개발자가 사용할 수 있는 결정적 요청 알림 메서드를 나열합니다.
| 이벤트 알림 방법 | 이벤트 후 알림 방법 |
|---|---|
| Beginrequest | (없음) |
| AuthenticateRequest | PostAuthenticateRequest |
| AuthorizeRequest | PostAuthorizeRequest |
| ResolveRequestCache | PostResolveRequestCache |
| MapRequestHandler | PostMapRequestHandler |
| AcquireRequestState | PostAcquireRequestState |
| PreRequestHandlerExecute | (없음) |
| RequestHandlerExecute | PostRequestHandlerExecute |
| ReleaseRequestState | PostReleaseRequestState |
| UpdateRequestCache | PostUpdateRequestCache |
| LogRequest | PostLogRequest |
| Endrequest | (없음) |
비결정적 요청 알림 Native-Code
다음 표에서는 네이티브 코드 개발자가 사용할 수 있는 비결정적 요청 알림 메서드를 나열합니다.
| 이벤트 알림 방법 | 이벤트 후 알림 방법 |
|---|---|
| OnAsyncCompletion | (없음) |
| OnCustomRequestNotification | (없음) |
| OnMapPath | (없음) |
| OnReadEntity | (없음) |
| OnSendResponse | (없음) |
비결정적 요청 알림 Managed-Code
다음 표에서는 관리 코드 개발자가 사용할 수 있는 비결정적 요청 알림 메서드를 나열합니다.
| 이벤트 알림 방법 | 이벤트 후 알림 방법 |
|---|---|
| PreSendRequestHeaders | (없음) |
| PreSendRequestContent | (없음) |