到目前为止,我正在使用ServiceStack取得了出色的结果,除了处理错误似乎很棘手。如果在消息的序列化过程中出现问题(因为我忘了在消息中添加默认构造函数),所有客户端都会返回的消息是服务器具有内部错误和状态代码500的消息。将侦听器添加到这 HttpApplication.Error 全局。ASAX中的事件无效,因为它永远不会受到打击。也没有 Application_Error. 。这不仅是最终用户场景不足的,而且还使调试这些错误非常麻烦,因为唯一找出出了什么问题的方法是快速观看中的这种丑陋表达:

Encoding.Default.GetString( ((System.IO.MemoryStream)((SyncMemoryStream)((System.Net.HttpWebResponse)(((WebException)ex).Response)).ResponseStream))._buffer)

我想要的是在服务器端捕获任何和所有错误(无论是通过ServiceStack序列化,还是我的服务上的错误),并将所需信息添加到一个 Errors 我所有消息类型都有的收集。

有帮助吗?

解决方案

参见ServiceStack的 验证和错误处理 Wiki页面有关ServiceStack中错误处理和验证的更多详细信息。

目前,无法使用自定义逻辑处理序列化异常(尽管我现在将在todo列表中添加它:)。

如果您的响应DTO有一个 响应 属性(即从ihasresponsestatus继承),ServiceStack应自动序列化您的异常。

还要使其序列化您的堆栈套件 调试模式 在您的apphost.configure()onload脚本中使用setConfig()呈现。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top