Ответ 1
Оба они похожи на высоком уровне в том смысле, что они позволяют выполнять инициализацию вашего веб-приложения, но они различаются по следующим важным причинам, как показано ниже:
- Методы, ориентированные на
WebActivatorEx.PreApplicationStartMethodAttribute
, будут выполняться до запуска приложения. Это позволяет вам делать что-то вроде инъекции HttpModule и т.д. - Методы, нацеленные на
OwinStartupAttribute
, будут выполняться после инициализации приложения. Это связано с тем, что этот тип запуска вызываетсяOwinHttpModule
, который сам по себе вводится при использованииSystem.Web.PreApplicationStartMethodAttribute
. - Запуск Owin можно отключить с помощью настройки с помощью appsetting в web.config
owin:AutomaticAppStartup
- Существует также
System.Web.PreApplicationStartMethodAttribute
, который с .NET 4.5 может использоваться несколько раз в сборке.
Итак, чтобы суммировать, это порядок выполнения методов в зависимости от используемых атрибутов.
-
System.Web.PreApplicationStartMethodAttribute
-
WebActivatorEx.PreApplicationStartMethodAttribute
- Метод Global.asax(
Application_Start
) -
OwinStartupAttribute