Silverlight та WCF debugging або як зрозуміти помилку сервісу
Досить часто при написанні Silverlight-додатків з використанням WCF-сервісів (у тому числі RIA-сервісів) при запиті на сервер у відповідь приходить повідомлення типу: "Remote server returned an error: Not Found". І просто так зрозуміти про що йдеться, або про що сервер намагається натякнути програмісту просто неможливо. Я розповім, як вирішується проблема налагодження.
Отже, хотівка
Хочу розуміти надіслані сервером повідомлення про помилки.
Увімкнення налагодження
Варіант 1:
Visual Studio має купу налаштувань, не оминула команда розробників і таку тему як налагодження (debugging). У налаштуваннях проекту сайту (host для silverlight-програми) легко помітити закладку Web, в якій у самому низу можна знайти розділ Debuggers.

Можна увімкнути та вимкнути налагодження Silverlight. Але варто помітити, що Ви не зможете одночасно використовувати налагодження Silverlight і Host (сайт), на якому запускається Silverlight-додаток, якщо Silverlight-додаток не браузер, а поза ним (Out-Of-Browser OOB). У випадку OOB, одночасно можна налагоджувати або сайт (наприклад, WCF-сервіси), або Silverlight-додаток.
Варіант 2:
Можна запустити налагодження використовуючи корисну функцію Visual Studio, яка називається Attach to process (Ctrl+Alt+P). Тобто підключиться безпосередньо до процесу (до браузера) в якому виконується silverlight-додаток:

Щоб визначити, до якого екземпляра підключиться, можна подивитися на тип:Type =Silverlight 86.
Конфігурація WCF-сервісу
У web.config теж треба внести деякі зміни. Вони не великі, але дуже важливі. Щоб ваш сервіс зміг із вами "спілкуватися" у файлі конфігурації повиннабути включене відповідне налаштування:
Цей параметр, як можна зрозуміти з назви, дозволяє надсилати інформацію про отримані винятки результат запиту.
І, нарешті, ще одне налаштування
Щоб Ви змогли отримувати повідомлення на стороні silverlight-додатку, треба "сказати" додатку і зокрема сервісу, що всі запити до нього йдуть через протокол http. Тобто зробити так, щоб сервіс думав, що його опитує web-сайт, а не silverlight. Для цього треба зробити таке:
1) на сторінці, яка звертається до сервісу (наприклад, MainPage.xaml.cs) додати простір імен:
2) у конструкторі цієї самої сторінки (наприклад, MainPage.xaml.cs) написати код:
Після налагодження можна сміливо видалити цей рядок. Вона більше не знадобиться. І, власне, на цьому все.