【发布时间】:2016-03-28 23:40:33
【问题描述】:
所以我在 ASP.NET 5 中使用 Web API。在某些时候我的应用程序停止工作,只显示“Bad Gateway”IIS 错误页面(我在 IIS Express 中按 F5 运行它)。我花了一段时间才弄清楚问题所在 - 我将循环引用引入到我的 Web API 方法返回的一个类中,如下所示:
public class CircularParent
{
public CircularChild Data;
public CircularParent()
{
Data = new CircularChild(this);
}
}
public class CircularChild
{
public CircularParent Owner { get; set; }
public CircularChild(CircularParent owner)
{
Owner = owner;
}
}
结果是JsonSerializationException。我的问题不是如何解决它,而是将来如何处理这种情况。我该如何处理这样的异常?或者至少如何记录它或只是看到它记录在某个地方? UseDeveloperExceptionPage() 没有帮助。 UseExceptionHandler(errorApp => errorApp.Run(...)) 也无济于事,执行不会进入 errorApp.Run()。调试器不会因异常而中断。我从 IIS 中得到的只是信息量不大的“坏网关”页面。
【问题讨论】:
-
我知道它可能没有答案,但 Newtonsofts json.net 可以通过多种方式处理循环引用,并且可以配置为 ASP.Net 的默认 JSON 序列化程序
标签: c# iis asp.net-core json.net