IIS 7 웹 서버 코어의 통합 요청 처리 파이프라인을 사용하면 네이티브 코드 개발자가 C++에서 HTTP 모듈을 작성할 수 있지만 네이티브 코드 및 관리 코드 개발자가 사용할 수 있는 이벤트 알림은 동일하지 않습니다. C#과 같은 관리되는 언어에서 네이티브 코드로 HTTP 모듈을 마이그레이션하는 개발자는 새 모듈을 만들 때 이러한 차이를 해결해야 합니다.
전역 알림
이제 개발자는 IIS 7을 사용하여 전역 수준에서 알림을 처리하는 네이티브 코드 HTTP 모듈을 만들 수 있습니다. 이전 버전의 IIS에서 개발자는 요청 수준에서만 알림을 처리하는 HTTP 모듈을 만들 수 있습니다. 전역 수준에서 알림을 처리하는 HTTP 모듈은 다양한 서버 수준 이벤트에 대한 알림을 처리하는 데 사용됩니다.
다음 표에서는 네이티브 코드 개발자가 사용할 수 있는 전역 알림 메서드를 나열합니다.
| 이벤트 알림 방법 | 설명 |
|---|---|
| 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 |
| 온릴리즈리퀘스트상태 | OnPostReleaseRequestState |
| OnUpdateRequestCache | OnPostUpdateRequestCache |
| OnLogRequest | OnPostLogRequest |
| OnEndRequest | OnPostEndRequest |
관리 코드 결정적 요청 알림
다음 표에서는 관리 코드 개발자가 사용할 수 있는 결정적 요청 알림 메서드를 나열합니다.
| 이벤트 알림 방법 | 이벤트 후 알림 방법 |
|---|---|
| BeginRequest | (없음) |
| 인증 요청 (AuthenticateRequest) | PostAuthenticateRequest |
| 요청 승인 (AuthorizeRequest) | PostAuthorizeRequest |
| ResolveRequestCache | PostResolveRequestCache |
| MapRequestHandler | PostMapRequestHandler |
| AcquireRequestState | PostAcquireRequestState |
| PreRequestHandlerExecute | (없음) |
| RequestHandlerExecute | PostRequestHandlerExecute |
| ReleaseRequestState | PostReleaseRequestState |
| 업데이트 요청 캐시 | 포스트업데이트요청캐시 |
| 로그 요청 | PostLogRequest |
| EndRequest | (없음) |
네이티브 코드 비결정적 요청 알림
다음 표에서는 네이티브 코드 개발자가 사용할 수 있는 비결정적 요청 알림 메서드를 나열합니다.
| 이벤트 알림 방법 | 이벤트 후 알림 방법 |
|---|---|
| OnAsyncCompletion | (없음) |
| OnCustomRequestNotification | (없음) |
| OnMapPath | (없음) |
| OnReadEntity | (없음) |
| OnSendResponse | (없음) |
비결정론적 요청 알림 관리 코드
다음 표에서는 관리 코드 개발자가 사용할 수 있는 비결정적 요청 알림 메서드를 나열합니다.
| 이벤트 알림 방법 | 이벤트 후 알림 방법 |
|---|---|
| PreSendRequestHeaders | (없음) |
| PreSendRequestContent | (없음) |