Ошибка тайм-аута при сериализации объекта 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?