OWIN Self主机 - 挂钩到开始请求,结束请求事件

时间:2014-11-05 04:43:22

标签: c# asp.net owin asp.net-web-api2

在ASP.NET OWIN自主机中,如何挂钩BeginRequest,EndRequest,Application Start和Application End事件,因为不需要Global.asax.cs?

2 个答案:

答案 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。您可以覆盖OnActionExecutingOnActionExecuted。如果您不想为每个控制器添加注释,可以添加过滤器,也可以添加全局过滤器:

GlobalConfiguration.Configuration.Filters.Add(new MyFilterAttribute());

作为ApplicationStart的替代,您可以在OwinStartup课程中执行代码。我不知道是否有类似于ApplicationEnd的内容。