В чем разница в производительности между HttpModule и Global.aspx? - PullRequest
7 голосов
/ 21 февраля 2009

Я создал веб-приложение, в котором я использую модуль, который перенаправляет без URL-адресов "www" (http://example.com/) на URL-адреса "www" (http://www.example.com/). Но, поскольку я на сервере общего хостинга где у меня нет разрешения на реализацию HttpModule, тогда я попробовал тот же код модуля с файлом Global.asax. Это работает!

Я использовал следующее событие (Application_BeginRequest ()) для реализации моей функциональности HttpModule.

void Application_BeginRequest()
{
  //module code
}

Модуль и приложение работают хорошо и правильно из файла Global.asax Но я беспокоюсь о производительности.

Почему мы используем HTTPModules в asp.net Если мы можем реализовать то же самое, используя файл Global.asax. Есть ли различия в производительности между обоими. Или любая разница, о которой мне нужно беспокоиться при использовании файла Global.asax вместо HttpModule ??

Пожалуйста, объясните!

Ответы [ 2 ]

4 голосов
/ 21 февраля 2009

Global.asax наследуется от HTTPApplication, а HTTPModules должны реализовывать IHTTPInterface.
Метод Init HTTPModules возвращает переданный объект HTTPApplication.
В методе Init вы можете подключиться к событиям HTTPApplication.

Я бы рекомендовал использовать HTTPModules везде, где вы можете.
Особенно если вы создаете термоусадочное программное обеспечение, где клиент может заменить ваш global.asax своим собственным.

2 голосов
/ 21 февраля 2009

Нет большой разницы. Смысл HTTPModules для ясности и разделения. Часто люди направляют запрос через несколько HTTP-модулей, чего вы не можете получить с помощью global.asax.

...