【发布时间】:2015-01-01 05:02:46
【问题描述】:
在 ASP.NET OWIN 自宿主中,由于不需要 Global.asax.cs,如何挂钩 BeginRequest、EndRequest、Application Start 和 Application End 事件?
【问题讨论】:
标签: c# asp.net owin asp.net-web-api2
在 ASP.NET OWIN 自宿主中,由于不需要 Global.asax.cs,如何挂钩 BeginRequest、EndRequest、Application Start 和 Application End 事件?
【问题讨论】:
标签: c# asp.net owin asp.net-web-api2
在 WebAPI 中,您可以为此使用 filters。您可以覆盖OnActionExecuting 和OnActionExecuted。如果您不想为每个控制器添加注释,则可以将过滤器添加为全局过滤器:
GlobalConfiguration.Configuration.Filters.Add(new MyFilterAttribute());
作为ApplicationStart 的替代品,您可以在OwinStartup 类中执行您的代码。不知道有没有类似ApplicationEnd的东西。
【讨论】:
在管道的开头添加一个简单的 owin 中间件来处理开始和结束请求。
public class SimpleMiddleWare:OwinMiddleware
{
public SimpleMiddleWare(OwinMiddleware next) : base(next)
{
}
public override async Task Invoke(IOwinContext context)
{
Debug.WriteLine("Begin Request");//Add begin request logic
await Next.Invoke(context);
Debug.WriteLine("End Request");//Add end request logic
}
}
【讨论】: