Я бы сказал, что Silverlight намного лучше подходит для ASP.NET модели. У вас есть сервер, который обслуживает веб-страницу. Объект (приложение Silverlight) на странице пингует службу данных для извлечения данных и их отображения.
Весь доступ к данным происходит на стороне сервера, и не имеет значения, используются ли данные для создания страниц ASP.NET на сервере или отправляются необработанными в RIA для отображения. Я регистрирую любые сбои в службе данных на стороне сервера (журнал событий работает нормально) и не разрешаю передавать какие-либо исключения в WCF. Когда клиент не получает ожидаемые данные (он получает нулевую коллекцию или что-то подобное), он отображает общую ошибку доступа к данным для пользователя. Возможно, нам придется расширить это в ближайшее время, чтобы передать немного больше информации (различие между отказом в доступе / отсутствующей базой данных / сбоем инфраструктуры / внутренней ошибкой / и т. Д.), Но мы не планируем передавать сообщения об ошибках исключения клиенту.
Что касается стороны клиента, иногда мы можем оказаться в ситуации, когда время асинхронного вызова истекло - это просто другое сообщение. Для общих исключений из клиентского кода (как правило, ошибок в нашем коде) я просто передаю исключение браузеру для отображения так же, как и любое исключение сценария.