Asp.net

Owin 中是否有來自 Global.asax 的 Application_End?

  • December 12, 2014

Startup.cs是一種初始化應用程序的新方法,而不是Application_Start在 Global.asax 中,這很好。但是有沒有地方可以放置我的拆解邏輯,例如:

public class WebApiApplication : System.Web.HttpApplication
{
 protected void Application_End()
 {
   // Release you ServiceBroker listener
   SqlDependency.Stop(connString);
 }
}

查看Microsoft.Owin命名空間,但它似乎只有OwinStartupAttribute. 這是否意味著應用程序生命週期事件仍然由System.Web.HttpApplication實例處理並且不受 OWIN 規範的支持?

AppProperties,在 中找到Microsoft.Owin.BuilderProperties,暴露了CancellationTokenfor OnAppDisposing

您可以獲取此令牌並為其註冊回調

public class Startup
{
   public void Configuration(IAppBuilder app)
   {
       var properties = new AppProperties(app.Properties);
       CancellationToken token = properties.OnAppDisposing;
       if (token != CancellationToken.None)
       {
           token.Register(() =>
           {
               // do stuff
           });
       }
   }
}

引用自:https://stackoverflow.com/questions/27444924