Startup.cs
是在Global.asax中初始化应用程序而不是Application_Start的一种新方式,没关系。但是有没有一个地方可以把我的拆卸逻辑,例如:
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中找到,显示了OnAppDisposing的CancellationToken。
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 }); } } }