序列化IHttpActionResult作为JSON导致异常

我有一个小的Web API 2应用程序,我试图实现传入请求和传出响应的日志记录(基本上记录你通过HTTP流量看到的东西Fiddler2)。序列化IHttpActionResult作为JSON导致异常

在尝试序列化来自某个方法的响应时,我收到了我不知道如何处理的异常。我试着玩JsonSerializerSettings等等。我可能会以完全错误的方式去做这件事。将不胜感激任何指导。

下面是导致异常的代码片段。

var response = Ok(successMessage); 

JsonSerializerSettings settings = new JsonSerializerSettings

{

PreserveReferencesHandling=Newtonsoft.Json.PreserveReferencesHandling.Objects,

ReferenceLoopHandling = ReferenceLoopHandling.Ignore

};

this.Logging.LogMessage(MessageType.ServiceResponse, JsonConvert.SerializeObject(response, Formatting.Indented, settings));

return response;

例外:

Newtonsoft.Json.JsonSerializationException: Error getting value from 'ReadTimeout' on 'System.Web.HttpInputStream'. ---> 

System.InvalidOperationException: Timeouts are not supported on this stream. at System.IO.Stream.get_ReadTimeout() at GetReadTimeout(Object)

at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target) --- End of inner exception stack trace ---

at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target)

回答:

是否有响应内的1一对多的关系?响应中是否包含一个列表,并且在该列表项中它包含回到响应的引用?

当构建一个json子节点时,无法引用它们的父节点,在尝试序列化时会产生无限循环。

构建一个视图模型并将该引用移回父级。只要通过parentid。

以上是 序列化IHttpActionResult作为JSON导致异常 的全部内容, 来源链接: utcz.com/qa/261192.html

回到顶部