tutorial session_end que programar programa primer net ejercicios asp asax aplicacion asp.net .net asp.net-mvc owin katana

asp.net - session_end - programar en asp net



¿Existe Application_End de Global.asax en Owin? (2)

Startup.cs es una nueva forma de inicializar su aplicación en lugar de Application_Start en Global.asax y está bien. ¿Pero hay un lugar para poner mi lógica de desmontaje, por ejemplo esto:

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

Se miró en Microsoft.Owin espacio de nombres Microsoft.Owin pero solo parece tener OwinStartupAttribute . ¿Esto significa que los eventos del ciclo de vida de la aplicación aún se procesan mediante la instancia de System.Web.HttpApplication y no son compatibles con la especificación OWIN?


He empaquetado esto en un pequeño ayudante para que pueda hacer esto:

public class Startup { public void Configuration(IAppBuilder app) { app.OnDisposing(() => { // do stuff }); } }

El ayudante:

static class AppBuilderExtensions { public static void OnDisposing(this IAppBuilder app, Action cleanup) { var properties = new AppProperties(app.Properties); var token = properties.OnAppDisposing; if (token != CancellationToken.None) { token.Register(cleanup); } } }


AppProperties , que se encuentra en Microsoft.Owin.BuilderProperties , expone el CancellationToken para OnAppDisposing .

Puedes obtener este token y registrar una devolución de llamada

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 }); } } }