2009-08-16 7 views
1

У меня есть HttpApplication (Global.asax) в моем веб-приложении, я использую это для поиска и регистрации необработанных Исключений и для настройки WebFormURLRouting. Все это работает, однако я хочу переместить этот код в мою Application Framework (т.е. не в Global.asax.cs)C# ASP.NET HttpModules: HttpApplication Events

Я только что попытался создать класс HttpApplication в рамках, но, похоже, я не могу переопределить события ? Во всяком случае, я считаю, что могу использовать HttpModule вместо этого, чтобы использовать эти события, делает это:

1) Устранить необходимость в Global.asax полностью?

2) Как этот эффект расширения, то есть в конечном итоге запустить приложение на веб-ферме

3) У меня есть HttpHandlers обрабатывать другие вещи, как загрузка файлов и загрузки файлов, есть предел тому, сколько HttpModule/HttpHandlers следует использовать или их следует комбинировать, чтобы уменьшить накладные расходы?

Все комментарии оценили

ответ

3

Прослушивание событий, которые вы знаете из Global.asax, в модуле HTTP, так просто, как подключение к событиям экземпляра HttpApplication в методе Init модуля. Вы не можете переопределить методы HttpApplication, вы должны слушать его события.

Как для других вопросов: 1) Да, во многих из моих веб-проектов, мы не используем Global.asax

2) Это на самом деле не влияет на укрупненном масштабе. Для каждого веб-сервера в ферме вам нужно правильно подключить HTTPModule. Но так как это делается в web.config, оно должно быть уже там.

3) Краткий ответ: Нет. Для httphandlers они выбираются и запускаются на основе входящего HTTP-запроса и/или пути доступа и метода HTTP. Вам действительно понадобится , прежде чем выбор конкретного обработчика станет проблемой производительности. Для HttpModules у вас есть возможность запускать некоторый код при каждом запросе, и, очевидно, если этот код требует времени для запуска, это повлияет на производительность. Но это будет ваш код, который занимает время, а не тот факт, что он запускается через http-модуль.

1

Вы можете создать свой класс приложения в своей структуре и унаследовать от него в каждом приложении. Таким образом, вы будете иметь все свои ручки в рамках.
Ответы:

  1. Вы можете избежать использования класса Application, но addign обработчиках, что это не очень хорошая идея.
  2. Количество обработчиков НЕ влияет на устойчивость к царапинам в целом. BUT IT ВЛИЯЕТ НА ОСНОВНУЮ ПОДДЕРЖКУ.
  3. Держите количество обработчиков маленьким из-за # 2.
Смежные вопросы