В чем разница между классом HttpApplication и IHttpModule? Являются ли они одинаковыми или разными?В чем разница между классом HttpApplication и IHttpModule?
Я вижу статьи, в которых упоминаются те же события в обоих классах.
В чем разница между классом HttpApplication и IHttpModule? Являются ли они одинаковыми или разными?В чем разница между классом HttpApplication и IHttpModule?
Я вижу статьи, в которых упоминаются те же события в обоих классах.
HttpApplication
- это экземпляр веб-приложения, в котором зарегистрировано несколько IHttpModule
экземпляров. Вот почему каждый экземпляр IHttpModule
обрабатывает определенную часть выполнения приложения, поэтому его обычно можно использовать повторно во многих приложениях (подумайте о модуле обработки Session
или модуле проверки подлинности).
С точки зрения применения/обработки запросов, существует много общего. HttpApplication
имеет доступ к событиям на уровне приложений, как OnStart, OnEnd и т.д., а также события запроса на уровне как OnBeginRequest, OnEndRequest и т.д. IHttpModule
с другой стороны, имеет доступ только к событиям запроса уровня.
Дополнительное примечание: Можно обрабатывать запуск приложений и конечных событий, даже с использованием IHttpModule, но это не документированная особенность, и вы должны принять некоторые специальные меры предосторожности. Проверьте эти два сообщения в блоге, которые объясняют все это в большой глубине:
Writing a customIHttpModule
that handlesApplication_OnStart
event
How to correctly useIHttpModule
to handleApplication_OnStart
event
Я предлагаю вам прочитать немного о трубопроводе выполнения жизненного цикла приложения:
+1 люблю изучать новый материал каждый раз, когда я пытаюсь ответить на что-то! – davidsleeps
Мне нужна хорошая статья, которая ясно объясняет –
@Chandan Khatwani: Что? Вы мне не верите, когда я говорю, что «HttpApplication» обрабатывает события уровня приложения и реализации «IHttpModule» обрабатывают события уровня запроса? ;) –
Существует не какая-либо большая разница, кроме HttpModules, которая позволяет удалить или отделить обработку события от остальной части вашего приложения. Это может помочь в повторном использовании кода, особенно в приложениях.
Кроме того, используя эту технику, вы можете добавить в HttpModules к вашему приложению без необходимости изменять какой-либо существующий исходный код (например, Elmah), чтобы обеспечить дополнительную функциональность.
http://aspalliance.com/442_Introducing_HTTPModules.all
Хорошая статья, которая должна помочь вам в понимании того, как HttpModules и HttpApplications работать вместе.
IHttpModule - управляемый обработчик запросов, что означает, что реализует «уловы» для запроса жизненного цикла.
HttpApplication представляет приложение ASP.NET для веб-сервера (IIS). Правильно, у него есть события и другие члены , которые вам нужны в контексте HTTP-модуля.
Вы можете разработать HTTP-модуль, если вам нужно реализовать индивидуальный способ обработки некоторых входных данных , заданных некоторым HTTP-запросом.Очевидно, что вам может потребоваться доступ к HTTP-приложению, которое равно тем, которые отображают события жизненного цикла запроса.
резюме является модуль HTTP является наблюдателем HTTP приложения, которые могут реализовать логику для того, чтобы процесс -запрос HTTP в способе сигналы приложений HTTP каждый шаг ASP.NET infraestructure жизненного цикла.
Можете ли вы предложить мне хорошую статью, которая поможет мне лучше понять разницу. –
Это так просто, Чандан. HTTP-приложение «это приложение» (ваш веб-сайт), в то время как HTTP-модуль является чем-то вроде «процессора запроса к приложению»: D –
извините ... Мне все еще не ясно. –
* Те же события * да, если они являются событиями уровня запроса. Но не тогда, когда они являются событиями на уровне приложений. –