#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