如何在ExceptionLogger中返回自定义响应

时间:2015-08-05 08:13:27

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

在Log方法中没有context.Response = MyResponse;

如何返回自定义响应,例如:

调用我的Log方法时,我想将id传递给当前请求。问题是如何获取Request的内容实例,将其传递给id?

导致异常的行为:

   public async Task<IHttpActionResult> GetConfiguredProducts(int number)
    {
        var products = await service.Get(number);
        return Ok(products);
    }


public class GlobalExceptionLogger : ExceptionLogger
    {
        private static int id;

        public override void Log(ExceptionLoggerContext context)
        {
            Interlocked.Increment(ref id);
            loggingService.ErrorException(string.Format("id: {0}", id), context.Exception);

        }
    }

2 个答案:

答案 0 :(得分:0)

如果您使用的是基于System.Web的堆栈(如果您使用的是IIS和ASP.NET版本&lt; 5,则可能就是这种情况),您可以使用在任何地方获得对请求和响应的引用p>

HttpContext.Current 

对象。

答案 1 :(得分:0)

ExceptionLoggerContext公开ExceptionContext,它公开Request和RequestContext。这还够吗?