【问题标题】:How to properly log response http code in ASP.NET CORE 3.1 filters?如何在 ASP.NET CORE 3.1 过滤器中正确记录响应 http 代码?
【发布时间】:2023-03-10 10:55:01
【问题描述】:

我想在过滤器中记录响应 http 状态代码?我有一个动作过滤器和一个异常过滤器。我可以在异常过滤器中记录 500 个响应。但是我在动作过滤器中得到的响应对象始终是 200,因为当时没有写入响应正文。

我考虑过使用中间件,但我似乎无法在中间件中获取控制器名称和操作名称。有什么建议吗?

【问题讨论】:

    标签: asp.net filter action middleware


    【解决方案1】:

    我想通了……

                    var endpoint = httpContext.GetEndpoint();
                if (endpoint != null)
                {
                    var controllerActionDescriptor = endpoint.Metadata.GetMetadata<ControllerActionDescriptor>();
                    if (controllerActionDescriptor != null)
                    {
                        var controllerName = controllerActionDescriptor.ControllerName;
                        var actionName = controllerActionDescriptor.ActionName;
                    }
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-17
      • 1970-01-01
      • 2011-01-30
      • 1970-01-01
      • 1970-01-01
      • 2014-08-18
      • 1970-01-01
      • 2014-09-16
      相关资源
      最近更新 更多