WebActivatorEx与OwinStartup

Ioa*_*cur 19 asp.net web owin

例如,在WebAPI应用程序中,有什么区别

[assembly: OwinStartup(typeof(MyClass), "MyMethod")]
Run Code Online (Sandbox Code Playgroud)

[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(MyClass), "MyMethod")]
Run Code Online (Sandbox Code Playgroud)

Gop*_*nan 38

它们在高级别上是相似的,因为它们允许您对Web应用程序进行初始化,但它们在某些重要方面有所不同,如下所示:

  1. 目标方法WebActivatorEx.PreApplicationStartMethodAttribute将在应用程序启动之前执行.这允许你做一些事情,比如注入一个HttpModule等.
  2. 目标方法OwinStartupAttribute将在Application初始化后执行.这是因为这种启动是通过OwinHttpModule注入使用来调用的System.Web.PreApplicationStartMethodAttribute.
  3. 可以使用web.config中的appsetting通过配置禁用Owin启动 owin:AutomaticAppStartup
  4. 还有System.Web.PreApplicationStartMethodAttribute一个.NET 4.5可以在程序集中多次使用.

总而言之,这是根据所使用的属性执行方法的顺序.

  1. System.Web.PreApplicationStartMethodAttribute
  2. WebActivatorEx.PreApplicationStartMethodAttribute
  3. Global.asax(Application_Start方法)
  4. OwinStartupAttribute


Ioa*_*cur 5

我在这里找到答案:

在新的SignalR API中,不再使用WebActivatorEx。 首选OwinStartup而不是WebActivator

  • 不好回答。您的问题是“两者之间有什么区别”,然后您不解释答案中的区别。 (7认同)