2012-04-03 4 views
6

Я делаю следующий учебник http://msdn.microsoft.com/en-us/library/ms731835%28v=vs.100%29.aspx, и программа работает отлично. Оба сервиса и клиент находятся в разных решениях. Я могу запустить службу из одной визуальной студии и успешно запустить клиентскую программу. Однако я хочу сделать отладку. Я хочу войти в код службы из кода клиента. Когда я попытаюсь сделать это, я получаю следующую ошибку.WCF Beginner Tutorial - Не удается отладить (шаг в)

«Невозможно автоматически перейти на сервер. Не удалось подключиться к серверному процессу. Отладчик уже подключен».

Оба клиента и сервер - это консольные приложения, а служба - размещенная версия slef. Я также попытался включить debug = true в файле app.config клиента.

Благодаря

Варуна

ответ

3

Есть несколько возможных вариантов для того, что вы пытаетесь достичь:

  1. Как указывает ошибка, клиент отладчик не может подключиться к серверному процессу, потому что это уже получил отладчик. Попробуйте запустить серверный процесс без отладчика.
  2. Ввод кода клиента и сервера в одно и то же решение, а затем с помощью RMC -> Debug -> Запустить новый экземпляр на ваших серверах и клиентских проектах
  3. Запуск процесса сервера с помощью отладчика, а затем с помощью «Отладка -> Присоединить к процессам .. "для присоединения к клиентскому коду (его нельзя запускать с помощью отладчика)

Я бы порекомендовал (по крайней мере, пока) поставить эти два в одно и то же решение для отладки. С ним работать проще в одном рабочем пространстве.

+0

Второй подход работает, но моя цель - не добиться этого. Я хочу, чтобы они были клиентом и сервером в двух разных визуальных студиях. Когда я использую первый подход, я получаю следующую новую ошибку: «Невозможно автоматически перейти на сервер. Удаленная процедура не может быть отлажена. Обычно это означает, что отладка не была включена на сервере». Я не уверен, как достичь третьей цели. – VVV

+0

Выполняется ли серверный процесс, построенный в режиме отладки? Что касается третьего, вы запускаете процесс сервера из визуальной студии, как обычно (F5), затем запускаете клиентский процесс из exe-файла, а затем в серверную визуальную студию выбираете меню Debug -> Attach to process .. и выбираете свой клиентский процесс exe. –

+0

Извините, я сделал то, что вы сказали. Начните службу, нажав F5. Затем была запущена клиентская программа (Ctrl + F5). Но затем, когда я попытался подключить клиентский процесс с серверной визуальной студии, он отключен. Я не могу прикрепить его. Также нет смысла запускать клиентскую программу из командной строки, потому что она закончится менее чем за 1 секунду. Всего один вызов функции сервису есть. Мне нужно поставить точку останова в клиентской программе. – VVV

3

Вы должны приложить Услугу клиенту. В экземпляре VS, где выполняется служба, перейдите к debug->Attach->(devenv.exe of the VS instance where the Client is running), а затем запустите клиент.

Смежные вопросы