WebActivatorEx与OwinStartup

时间:2014-01-30 17:01:08

标签: asp.net web owin

例如,在Web API应用程序中,

之间有什么区别
[assembly: OwinStartup(typeof(MyClass), "MyMethod")]

[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(MyClass), "MyMethod")]

2 个答案:

答案 0 :(得分:35)

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

  1. WebActivatorEx.PreApplicationStartMethodAttribute定位的方法将在应用程序启动之前执行。这允许你做一些事情,比如注入HttpModule等。
  2. OwinStartupAttribute定位的方法将在Application初始化后执行。这是因为OwinHttpModule调用了这种启动,它本身是使用System.Web.PreApplicationStartMethodAttribute注入的。
  3. 可以使用owin:AutomaticAppStartup
  4. 的web.config中的appsetting通过配置禁用Owin启动
  5. 还有System.Web.PreApplicationStartMethodAttribute,从.NET 4.5开始,可以在程序集中多次使用。
  6. 总而言之,这是根据所使用的属性执行方法的顺序。

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

答案 1 :(得分:5)

我找到了答案here

  

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