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

gov*_*vin 6 c# asp.net owin asp.net-web-api2

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

Raj*_*jiv 5

在管道的开头添加一个简单的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
    }
}
Run Code Online (Sandbox Code Playgroud)


Mic*_*elS 1

在 WebAPI 中,您可以使用过滤器来实现这一点。您可以覆盖OnActionExecutingOnActionExecuted。如果您不想注释每个控制器,您可以将过滤器添加为全局过滤器:

GlobalConfiguration.Configuration.Filters.Add(new MyFilterAttribute());
Run Code Online (Sandbox Code Playgroud)

作为替代,ApplicationStart您可以在类中执行代码OwinStartup。不知道有没有类似的ApplicationEnd