Самый ранний доступ к жизненному циклу .net - PullRequest
1 голос
/ 29 января 2009

После просмотра .net на жизненном цикле приложения IIS7:

http://msdn.microsoft.com/en-us/library/ms178473.aspx

Для максимальной производительности я хочу найти способ запустить мой код, как только объект HttpContext создан, но до HttpApplication. (легко запустить код после загрузки класса HttpApplication, но до запуска любого его события, используя конструктор модуля HTTP, подобный этому:

    public class AuthModule : IHttpModule 
    {     
        public AuthModule()
        {
            HttpContext.Current.Response.Write("hello world");
            HttpContext.Current.Response.End();
        }

        #region IHttpModule Members

        public void Dispose()
        {  }

        public void Init(HttpApplication context)
        {   }

        #endregion
    }

Я знаю, что не получу доступ к объекту User, но он мне не понадобится.

Ответы [ 2 ]

1 голос
/ 30 января 2009

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

Кроме того, выполнение кода на этом этапе выходит за рамки конвейера. Это должно заставить вас спросить себя, действительно ли это разумная вещь.

А что это за производительность? Вы действительно думаете, что время для создания экземпляра HttpApplication будет зарегистрировано в вашем исполнении?

Сделай шаг назад и пересмотри.

0 голосов
/ 30 января 2009

Посмотрите на события жизненного цикла на MSDN . Вы можете рассмотреть возможность использования одного из этих событий, если хотите что-то раньше, чем обычные события страницы.

...