Инициализация ASP.NET Веб-приложение при запуске пула приложений

#asp.net #initialization #httphandler

#asp.net #инициализация #httphandler

Вопрос:

Я искал в Интернете более одного дня, но не нашел ничего, что мне нужно.

Я разрабатываю веб-приложение IIS с HttpHandlers и HttpModules. Мне нужно инициализировать приложение при первом запуске (применяя конфигурацию). Но я не хочу использовать global.asax.cs, потому что я не хочу, чтобы реализации имели файл global.asax в своей папке (максимум web.config).

Как мне запустить некоторый код при инициализации пула приложений?

Ответ №1:

Вы можете использовать атрибут уровня сборки PreApplicationStartMethodAttribute, чтобы ваш код запуска выполнялся на ранней стадии ASP.NET трубопровод.

 namespace MyWebService
{
     public class MyHttpHandler: IHttpHandler, IDisposable
     {

            public static void StartUp()
            {
                //Application Startup Code;
            }

            public void ProcessRequest(HttpContext context)
            {
                    //Do Something 
            }

            public bool IsReusable { get; private set; }

            public void Dispose(){};

            }
        }
    }
}
  

И добавьте атрибут в ваш AssemblyInfo.cs

 [assembly: PreApplicationStartMethod(typeof(MyWebService.MyHttpHandler), "StartUp")] 
  

Для получения дополнительной информации о PreApplicationStartMethod: https://msdn.microsoft.com/en-us/library/system.web.preapplicationstartmethodattribute