This is a mirror of official site: http://jasper-net.blogspot.com/

SILVERLIGHT + WCF: DEBUGGING ИЛИ КАК ПОНЯТЬ ОШИБКУ СЕРВИСА

| Tuesday, February 22, 2011
ИТАК, ХОТЕЛКА
Хочу понимать присланные сервером сообщения об ошибках.

ВКЛЮЧЕНИЕ ОТЛАДКИ
Вариант 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 надо тоже внести некоторые изменения. Они не большие но очень важные. Чтобы ваш сервис смог с вами "общаться" в файле конфигурации должна быть включена соответствующая настройка:

<serviceDebug includeExceptionDetailInFaults="true" />


Этот параметр, как можно понять из названия, разрешает отправку информации о полученных исключениях в результат запроса.

И, НАКОНЕЦ, ЕЩЕ ОДНА НАСТРОЙКА


Чтобы Вы смогли получать сообщения на стороне silverlight-приложения, надо "сказать" приложению и в частности сервису, что все запросы к нему идут через http протокол. То есть, сделать так, чтобы сервис думал что его опрашивает web-сайт, а не silverlight. Для этого надо сделать следующее:

1) на странице, которая обращается к сервису (например, MainPage.xaml.cs) добавить пространства имен:


using System.Net;
using System.Net.Browser;

2) в конструкторе этой самой страницы (например, MainPage.xaml.cs) написать код:

WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);

Posted via email from Jasper-net

0 comments: