【问题标题】:How do I get the full request details from WebException? (GET|POST etc)如何从 WebException 获取完整的请求详细信息? (获取|发布等)
【发布时间】:2013-02-20 10:50:17
【问题描述】:

我有一个 asp.net web api 项目。在我的控制器中,我设置了

ExceptionFilterAttribute

在全局级别捕获任何错误。控制器方法触发了两个 get 请求。他们失败了,所以我看到异常过滤器中引发了异常。但是,异常没有向我显示失败请求的详细信息。有可能得到它们吗?例如,可能调用了 4 个 GET 请求,其中一个失败并引发异常。但我看到的只是一条消息......

无法解析远程名称:'xx.xx.com'

但我需要更多详细信息,例如查询字符串等...

web异常上的响应对象也是空的:-(

【问题讨论】:

    标签: c# asp.net-mvc wcf asp.net-web-api system.net.webexception


    【解决方案1】:

    ExceptionFilterAttributeOnException 方法中,您有一个HttpActionExecutedContext 类型的参数参数。在此类的实例中,您可以访问RequestResponse 属性以获取您需要的所有信息,无论是请求还是响应。在ActionContext 属性中,您甚至可以获取所有路由、控制器和操作信息。

    var requestHttpMethod = actionExecutedContext.Request.Method;
    var requestUri = actionExecutedContext.Request.RequestUri;
    
    var controllerDescriptor = actionExecutedContext.ActionContext.ControllerContext.ControllerDescriptor;
    var actionDescriptor = actionExecutedContext.ActionContext.ActionDescriptor;
    

    您还可以修改响应对象以返回更合适的错误消息。看看这些类可以为您提供哪些信息。

    【讨论】:

      猜你喜欢
      • 2011-03-02
      • 2018-07-25
      • 2015-10-01
      • 2021-11-29
      • 1970-01-01
      • 2021-09-28
      • 2022-08-19
      • 2016-12-10
      • 2012-02-29
      相关资源
      最近更新 更多