禁用静态文件的管道

时间:2014-12-19 22:44:39

标签: c# asp.net-mvc owin

我最近将OWIN添加到我现有的ASP.NET MVC 5项目中。 我使用它来记录发送到我服务器的请求和响应数据。

所有内容都设置正确,日志记录效果很好,除了一个我并不感到兴奋的问题:它会记录任何静态文件请求。

如何避免记录.js / images / css / etc。请求使用OWIN管道?

我的一个自定义日志:

Request 
Method: GET 
Path: http://localhost:12345/content/stylesheets/site.css.map 
Headers:  ...
Body:  ...

我发现当我加载一个网页时,我可以看到从所有静态文件加载生成了8个日志条目。我只关心主要要求。

现在,我可以进入白名单黑名单请求路径,但我想在此之前,必须有一种更简单的方法。

我想避免这样做:

_urlsToNotLog = new[]{
    "content/stylesheets/site.css.map",
    "Scripts/jquery.validate.unobtrusive.js",
    .
    .
    };

if(_urlsToNotLog.Contains(environment["owin.RequestPath"]))
{
   //log request
}
else
{
    //Don't log
}

我的代码:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.Use<LoggingMiddleware>();
    }
}

public class LoggingMiddleware
{
    public LoggingMiddleware(AppFunc next)
    {
        _next = next;
    }

    public async Task Invoke(IDictionary<string, object> environment)
    {
        LogRequest(environment);
        await _next(environment);
        LogResponse(environment);
    }

0 个答案:

没有答案