ServiceStack: как бороться с ошибками?

Я использую ServiceStack до сих пор с отличными результатами, за исключением того, что работа с ошибками кажется сложной. Если что-то пойдет не так во время сериализации сообщения (например, потому что я забыл добавить конструктор по умолчанию к сообщению), все, что клиент получает обратно, - это сообщение о внутренней ошибке сервера и код состояния 500. Добавление слушателя в событие HttpApplication.Error в Global.asax не работает, так как никогда не срабатывает. Как и Application_Error . Этого не только недостаточно для сценариев конечного пользователя, это делает отладку этих ошибок очень обременительной, поскольку единственный способ выяснить, что пошло не так, - это уродливое выражение в Quick Watch:

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

Я бы хотел поймать все и все ошибки на стороне сервера (будь то сериализация с помощью ServiceStack или ошибки в моих службах) и добавить необходимую информацию в коллекцию Errors , которая есть у всех моих типов сообщений.

7
задан stringargs 14 January 2011 в 14:53
поделиться