OpenRasta - 将错误编码为JSON而不是HTML

时间:2011-08-30 22:28:26

标签: openrasta

我注意到OpenRasta.Core有一个HtmlErrorCodec,它负责呈现当处理程序抛出异常时发出的服务器错误页面。

当我向异常抛出处理程序发出JSON Ajax请求时,选择此Codec并将异常呈现为HTML。

我试图为IList注册我自己的IMediaTypeWriter<错误>使用MediaType(“application / json”),所以我可以将JSON发送回浏览器,但它似乎被忽略了。有人可以帮忙吗?

由于 尼尔

2 个答案:

答案 0 :(得分:1)

你能抓住你的异常,将它们包装在一个类型中并执行以下操作:

ResourceSpace.Has.ResourcesOfType<MyErrorWrapper>().WithoutUri.AsJsonDataContract()

答案 1 :(得分:1)

如果出现错误,确实会选择带有IList的编解码器,但会按照正常的连接类型进行操作。

我建议查看请求日志并找出html编解码器的选择方式和原因(我怀疑我的远程调试隧道愿景可能会让浏览器发送等效的{{1} },此时OR并不真正知道两者中哪一个是可接受的,这可能是一个错误,因为我们将aq为1的文本/ html注册为0.5)。如果这确实是问题所在,解决方案是删除html错误编解码器的注册,您可以通过提供自己的DependencyRegistrar来完成。