asp.net - WebActivatorEx 与 OwinStartup

标签 asp.net web owin

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

[assembly: OwinStartup(typeof(MyClass), "MyMethod")]

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

最佳答案

它们在较高层面上是相似的,因为它们都允许您执行 Web 应用程序的初始化,但它们在一些重要方面有所不同,如下所示:

  1. WebActivatorEx.PreApplicationStartMethodAttribute 所针对的方法将在应用程序启动之前执行。这允许您执行诸如注入(inject) HttpModule 等操作。
  2. OwinStartupAttribute 所针对的方法将在应用程序初始化后执行。这是因为这种启动是由 OwinHttpModule 调用的,而 OwinHttpModule 本身是使用 System.Web.PreApplicationStartMethodAttribute 注入(inject)的。
  3. 可以使用 owin:AutomaticAppStartup 的 web.config 中的应用程序设置通过配置禁用 Owin 启动
  4. 还有 System.Web.PreApplicationStartMethodAttribute,从 .NET 4.5 开始,它可以在程序集中多次使用。

总而言之,这是方法的执行顺序,具体取决于所使用的属性。

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

关于asp.net - WebActivatorEx 与 OwinStartup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21462777/

相关文章:

ASP.NET MVC 认为我的虚拟目录是一个 Controller

html - 在背景前面可视地创建一个框

c# - 是否可以创建一个可以同时作为独立应用程序和 IIS 内部托管的 OWIN 应用程序?

c# - 使用 Owin 和 Google 登录的 asp.net 身份 : skip registration

c# - AppSettings 回退/默认值?

c# - 无法从 NULL 读取属性 "Patient"

c# - 使用 ASP.NET 设置模拟

javascript - 当我点击 li 标签时,它获得了数据值,但是当我插入它时它有空值

html - 如何使用溢出: hidden and make elements overflow on top without using position: absolute?

azure - 如何设置 app.UseOAuthBearerAuthentication 来处理不同的 Azure B2C 自定义策略?