在ASP.NET OWIN自主机中,如何挂钩BeginRequest,EndRequest,Application Start和Application End事件,因为不需要Global.asax.cs?
答案 0 :(得分:4)
在管道的开头添加一个简单的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
}
}
答案 1 :(得分:1)
在WebAPI中,您可以使用filters。您可以覆盖OnActionExecuting
和OnActionExecuted
。如果您不想为每个控制器添加注释,可以添加过滤器,也可以添加全局过滤器:
GlobalConfiguration.Configuration.Filters.Add(new MyFilterAttribute());
作为ApplicationStart
的替代,您可以在OwinStartup
课程中执行代码。我不知道是否有类似于ApplicationEnd
的内容。