到目前为止,我使用 ServiceStack 取得了很好的效果,但处理错误似乎很棘手。如果在消息的序列化过程中出现问题(例如,因为我忘记向消息添加默认构造函数),客户端返回的所有消息都是服务器有内部错误和状态代码 500 的消息。添加侦听器Global.asax 中的HttpApplication.Error
事件不起作用,因为它永远不会被击中。也没有Application_Error
。这不仅对于最终用户场景来说是不够的,而且使调试这些错误变得非常麻烦,因为找出问题所在的唯一方法是快速观察中的这个丑陋的表达式:
Encoding.Default.GetString( ((System.IO.MemoryStream)((SyncMemoryStream)((System.Net.HttpWebResponse)(((WebException)ex).Response)).ResponseStream))._buffer)
我想要的是在服务器端捕获任何和所有错误(无论是 ServiceStack 的序列化,还是我的服务上的错误),并将所需的信息添加到Errors
我所有消息类型都具有的集合中。