Ошибка тайм-аута при сериализации объекта HttpActionExecutedContext

Я пишу один тестовый фильтр исключения в моем проекте, где я хочу регистрировать объект запроса и ответа. Вот мой код:

public override void OnException(HttpActionExecutedContext actionExecutedContext)
{
    //Add custom log
    LogEventInfo eventInfo = new LogEventInfo();
    eventInfo.TimeStamp = DateTime.Now;
    eventInfo.Level = LogLevel.Error;
    eventInfo.Exception = actionExecutedContext.Exception;
    eventInfo.Properties["STATUS"] = actionExecutedContext.Response != null ? actionExecutedContext.Response.StatusCode : System.Net.HttpStatusCode.InternalServerError;
    try
    {
        eventInfo.Properties["PAYLOAD"] = "";
        if (actionExecutedContext.Response != null && actionExecutedContext.Response.StatusCode != System.Net.HttpStatusCode.OK)
        {
            eventInfo.Properties["PAYLOAD"] += JsonConvert.SerializeObject(actionExecutedContext.Request, Formatting.None,
                        new JsonSerializerSettings()
                        {
                            ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                        });
            eventInfo.Properties["PAYLOAD"] += JsonConvert.SerializeObject(actionExecutedContext.Response, Formatting.None,
                        new JsonSerializerSettings()
                        {
                            ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                        });
        }
    }
    catch (Exception ex)
    {
        eventInfo.Properties["PAYLOAD"] = "Logging Exception: " + ex.Message;
    }
    _logger.Log(eventInfo);
}

При выполнении вышеприведенного кода всегда выдается исключение Ошибка получения значения из "ReadTimeout" на "Microsoft.Owin.Host.SystemWeb.CallStreams.InputStream". Кто-нибудь может предложить какое-либо решение для этой проблемы? Как я могу сериализовать объект запроса и ответа HttpActionExecutedContext?

0 ответов

Другие вопросы по тегам