2009-05-13 2 views
2


Как IIS7 решает, когда вызывать ...?

Q1) Предполагая, что модуль Http зарегистрирован IIS7 будет использоваться для non-Asp.Net приложения (скажем, некоторые Java приложение), когда в жизненном цикле запрос будет IIS7 ссылаться на этот модуль? Таким образом, как IIS7 решит, когда его вызывать?


Q2) Для того, чтобы зарегистрировать Http модуль с IIS7, необходимо поместить его в GAC. Возможно ли зарегистрировать Http-модуль или Http-обработчик, не помещая его в GAC?


Thanx

ответ

2

A1. Предполагая, что вы используете интегрированный конвейер, жизненный цикл запроса одинаковый для запросов .Net и non.Net. «Правила отслеживания неудачных запросов» IIS7 предоставят вам чрезвычайно подробную информацию о событиях, которые срабатывают в течение жизненного цикла запроса. Я использовал это для отладки HttpModules, и это очень помогает.

A2. Да, вам не нужно помещать HttpModule в GAC для его регистрации. Пока он находится в папке «bin» вашего приложения, IIS7 сможет его найти.

+0

Итак, в сущности, IIS 7 имеет свои собственные события, к которым могут быть зарегистрированы модули Http? Но как мы регистрируем пользовательский Http-модуль для конкретного события IIS 7? – SourceC

+1

Интегрированная трубопровод IIS7 * - это * ASP.NET Pipeline, который вы знаете и любите. Они слиты. Это не отдельные события - это одни и те же события. –

+0

Теперь я в замешательстве. A) Если два трубопровода объединены так, как вы говорите, то кто делает фактический обстрел событий ... IIS7 или Asp.Net? B) Кроме того, если эти два объединяются, то только события запускаются (по этому конвейеру) событиям HttpApplication (BeginRequest, AuthenticateRequest, AuthorizeRequest) или этот конвейер также имеет «свои собственные события, связанные с неаспаркой»? C) Итак, собственные модули IIS7 (таким образом, модули nonAsp.Net) также подписаны/зарегистрированы в событиях HttpApplication (BeginRequest, AuthenticateRequest и т. Д.)? – SourceC