Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Хотя интегрированный конвейер обработки запросов в ядре веб-сервера IIS 7 позволяет разработчикам машинного кода писать http-модули в C++, уведомления о событиях, доступные разработчикам машинного кода и управляемого кода, не идентичны. Разработчикам, которые переносят модуль HTTP с управляемого языка, например C# в машинный код, придется устранить эти различия при создании новых модулей.
Глобальные уведомления
С помощью IIS 7 разработчики теперь могут создавать модули HTTP машинного кода, обрабатывающие уведомления на глобальном уровне. В предыдущих версиях IIS разработчики могут создавать модули HTTP, обрабатывающие уведомления только на уровне запроса. Модули HTTP, обрабатывающие уведомления на глобальном уровне, используются для обработки уведомлений для различных событий уровня сервера.
В следующей таблице перечислены глобальные методы уведомлений, доступные разработчикам машинного кода.
| Метод уведомления о событиях | Описание |
|---|---|
| OnGlobalApplicationResolveModules | Вызывается, когда IIS определяет зарегистрированные модули. |
| OnGlobalApplicationStart | Вызывается при запуске приложения IIS. |
| OnGlobalApplicationStop | Вызывается при выходе iis из приложения. |
| OnGlobalCacheCleanup | Вызывается, когда IIS очищает кэш. |
| OnGlobalCacheOperation | Вызывается, когда IIS выполняет операцию, связанную с кэшем. |
| OnGlobalConfigurationChange | Вызывается при изменении файла конфигурации. |
| OnGlobalCustomNotification | Вызывается, когда модуль вызывает определяемое пользователем уведомление. |
| OnGlobalFileChange | Вызывается при изменении файла на веб-сайте. |
| OnGlobalHealthCheck | Вызывается при выполнении операции, связанной со здоровьем. |
| OnGlobalPreBeginRequest | Вызывается перед тем, как запрос входит в интегрированную конвейерную систему обработки запросов. |
| OnGlobalRSCAQuery | Вызывается при выполнении запроса Run-Time Status and Control. |
| OnGlobalStopListening | Вызывается, когда IIS прекращает прием новых запросов. |
| OnGlobalThreadCleanup | Вызывается, когда IIS возвращает поток в пул потоков. |
| OnGlobalTraceEvent | Вызывается при вызове события трассировки. |
Сравнение уведомлений запросов
Хотя методы уведомлений запроса для модулей HTTP в машинном коде и управляемом коде похожи во многих отношениях, они не полностью аналогичны. Например, список детерминированных методов уведомлений запроса почти идентичен для модулей машинного кода и управляемого кода, но список недетерминированных методов уведомлений запроса значительно отличается.
Нативный код: детерминированные уведомления о запросах
В следующей таблице перечислены детерминированные методы уведомлений запросов, доступные разработчикам машинного кода.
| Метод уведомления о событиях | Метод уведомления после события |
|---|---|
| OnBeginRequest | OnPostBeginRequest |
| OnAuthenticateRequest | OnPostAuthenticateRequest |
| OnAuthorizeRequest | OnPostAuthorizeRequest |
| OnResolveRequestCache | OnPostResolveRequestCache |
| OnMapRequestHandler | OnPostMapRequestHandler |
| OnAcquireRequestState | OnPostAcquireRequestState |
| OnPreExecuteRequestHandler | OnPostPreExecuteRequestHandler |
| OnExecuteRequestHandler | OnPostExecuteRequestHandler |
| OnReleaseRequestState | OnPostReleaseRequestState |
| OnUpdateRequestCache | OnPostUpdateRequestCache |
| OnLogRequest | OnPostLogRequest |
| OnEndRequest | ПослеЗавершенияЗапроса |
Детерминированные уведомления о запросах на управляемом коде
В следующей таблице перечислены детерминированные методы уведомлений запросов, доступные разработчикам управляемого кода.
| Метод уведомления о событиях | Метод уведомления после события |
|---|---|
| НачатьЗапрос | (Нет) |
| Запрос на аутентификацию | PostAuthenticateRequest |
| ЗапросАвторизации | ЗапросНаПостАвторизацию |
| РазрешитьКэшЗапросов | PostResolveRequestCache |
| MapRequestHandler | PostMapRequestHandler |
| AcquireRequestState | PostAcquireRequestState |
| PreRequestHandlerExecute | (Нет) |
| RequestHandlerExecute | PostRequestHandlerExecute |
| ReleaseRequestState | PostReleaseRequestState |
| UpdateRequestCache | ПостобновлениеКэшаЗапроса |
| LogRequest | PostLogRequest |
| ЗавершитьЗапрос | (Нет) |
Native-Code недетерминированные уведомления о запросах
В следующей таблице перечислены недетерминированные методы уведомлений запросов, доступные разработчикам машинного кода.
| Метод уведомления о событиях | Метод уведомления после события |
|---|---|
| OnAsyncCompletion | (Нет) |
| OnCustomRequestNotification | (Нет) |
| OnMapPath | (Нет) |
| OnReadEntity | (Нет) |
| OnSendResponse | (Нет) |
Managed-Code недетерминированные уведомления о запросах
В следующей таблице перечислены недетерминированные методы уведомлений запросов, доступные разработчикам управляемого кода.
| Метод уведомления о событиях | Метод уведомления после события |
|---|---|
| PreSendRequestHeaders | (Нет) |
| PreSendRequestContent | (Нет) |
См. также
Создание модулей HTTP Native-Code
Проектирование модулей HTTP Native-Code