Как войти в службу WCF Rest из клиентского приложения .NET? - PullRequest
4 голосов
/ 26 апреля 2011

Я разрабатываю решение в Visual Studio 2010, в котором есть служба WCF RESTful, размещенная в IIS (на самом деле это Кассини), и прототип клиента ASP.NET MVC. У меня все общается, но я не могу войти в службу при отладке клиента.

У меня есть класс «агент службы», который используется моими контроллерами для работы со службой. Сервисный агент использует следующий код для фактических вызовов службы:

var factory = new WebChannelFactory<IServiceContract>("theEndpointConfigName");
var channel = factory.CreateChannel();

var result = channel.CallTheService();

Я могу установить точку останова на последней строке, но нажатие клавиши F11 не приведет меня в сервис, как я ожидал.

Оба проекта существуют в одном решении, и я подтвердил, что служба вызывается правильно, изменив данные ответа.

Чего мне не хватает?

Ответы [ 3 ]

3 голосов
/ 26 апреля 2011

Отладчик Visual Studio не может перешагнуть границу процесса. Вы можете присоединиться к клиентскому процессу или к процессу сервера, но не к обоим сразу.

Вот несколько предложений:

  • Сначала отладьте код клиента. Если ошибки нет, воспроизведите ошибку еще раз, но вместо кода клиента отлаживайте служебный код.
  • Создание двух отдельных решений для целей отладки, одно из которых содержит только клиентские проекты, а другое - только сервисные проекты. Затем вы можете запустить оба решения в двух экземплярах IDE бок о бок.
  • Добавить юнит-тесты. Гораздо проще найти ошибку в сервисе, если «клиент» - это простой метод модульного тестирования вместо вашего полного клиента.
2 голосов
/ 26 апреля 2011

Я действительно наткнулся на ответ.Я благодарю Кристиана за то, что он неосознанно направил меня в правильном направлении.Ваше утверждение о том, что отладчик подключается к тому или иному процессу, но не к обоим, заставило меня задуматься.Мне пришло в голову, что веб-проект был задан как единственный стартовый проект в моем решении.Как жаворонок, я решил попробовать добавить мое приложение службы WCF в список запуска.Виола!Это все, что потребовалось!

Так что теперь у меня запущены оба проекта.Я изменил настройку в своем приложении WCF Service, чтобы при запуске оно не отображало страницу.И теперь все работает так, как я ожидал.

Спасибо за продвижение в правильном направлении!

0 голосов
/ 21 июня 2011

Ознакомьтесь с приведенной ниже статьей CodeProject, чтобы понять, как отлаживать WCF REST Servive.

http://www.codeproject.com/Tips/213007/Debug-WCF-REST-Service

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...