Silverlight регистрация ошибок - PullRequest
       7

Silverlight регистрация ошибок

2 голосов
/ 27 октября 2010

Как правильно обрабатывать ошибки на стороне клиента приложений Silverlight?Я попытался создать конечную точку службы, которая получала бы подробную информацию об ошибке, а затем записывала эту строку в базу данных.Проблема в том, что текст ошибки превышает максимальную длину байта, поэтому я не могу отправить сообщение об исключении и трассировку стека.Что было бы лучшим способом обработки ошибок, которые заканчиваются на стороне клиента?

Ответы [ 4 ]

1 голос
/ 27 октября 2010

Попробуйте обработать ошибки ... Я использовал этот шаблон из MSDN

http://msdn.microsoft.com/en-us/library/dd470096%28VS.96%29.aspx

0 голосов
/ 09 апреля 2011

Взгляните на новый Silverlight Integration Pack для Enterprise Library от Шаблоны и практики Microsoft .Он обеспечивает подключение как для ведения журналов (на стороне клиента и через удаленный сервис), так и для обработки исключений с гибкой настройкой политик с помощью конфигурации или программ.

0 голосов
/ 21 марта 2011

Вы не должны рассматривать регистрацию сообщений об ошибках через сервис.Что если ошибка, которую вы хотите зарегистрировать, связана с самой службой?Возможно, сервер, на котором размещены все зависимые службы (включая службу регистрации ошибок), недоступен или недоступен.Ошибки клиента должны регистрироваться на стороне клиента и периодически сбрасываться на сервер, когда доступно подключение к сервису.

Вот что я бы сделал ...

0 голосов
/ 27 октября 2010

Если вы обнаружите, что ваше сообщение слишком длинное для отправки в веб-службу ведения журнала, попробуйте настроить свойства привязки, такие как maxBufferSize и maxStringContentLength, на соответствующие большие значения.Они по умолчанию 16 КБ, лично я установил мой 2147483647 (который int.MaxValue).

Очевидно, что вы не можете отправить необработанное исключение прямо в веб-службу регистрации (исключения не сериализуемы), что я сделал, былонаписать функцию, которая принимает исключение и обходит его, переводя его в дружественную структуру WCF, которая затем может быть передана моей конечной точке ведения журнала.Конечно, вы должны убедиться, что в случае неудачи у вас есть план резервного копирования, например, запись его в изолированное хранилище, если вы работаете в браузере, или запись в файловую систему пользователя, если вы работаете с повышенными правами OOB.

...