Visual Studio: одновременная разработка клиента и сервера WCF - PullRequest
9 голосов
/ 30 сентября 2010

Мне нужно разработать сервер WCF (в основном веб-сервис, который в конечном итоге будет работать в IIS) и клиентское приложение, которое обращается к сервису.У меня есть и клиент, и серверный проект в одном решении Visual Studio (2008).

Какой рекомендуемый способ подключения клиента к серверу во время разработки?

Мне сразу приходят в голову два возможных решения: одно - развертывать серверный проект на некоторых IIS после каждого изменения, а другое - запускать два экземпляра Visual Studio и использовать фиксированный порт TCP для (интегрированный с Visual-Studio).) веб-сервер серверного проекта.

Поскольку ни один из этих вариантов не кажется мне особенно элегантным, мне было интересно, если бы я упустил очевидный "правильный способ" сделать это ...

Ответы [ 2 ]

20 голосов
/ 30 сентября 2010

То, как я это делаю, так:
- Щелкните правой кнопкой мыши файл решения и выберите Установить стартовые проекты ...
- Выберите Несколько запускаемых проектов и выберите Запуск для вашего клиентского и серверного проекта, оставьте остальные none

Теперь оба проекта будут запускаться при запуске, и вы сможете отлаживать их оба.

1 голос
/ 30 сентября 2010

Поскольку у меня много служб WCF, используемых моим проектом, и я не хочу запускать слишком много экземпляров VS для отладки, это то, что я делаю: -

Если вы в порядке с местным IIS, вы можете рассмотреть это.

  1. Для каждой службы WCF я создал проект веб-сайта.

  2. Проекты этого веб-сайта также доступны в виде веб-папок в локальном IIS. например, http: \ mylocalmachine \ WCFService1 \ servicefile.svc

  3. В моих клиентах WCF web.config URL-адрес службы указан выше. например (http: \ mylocalmachine \ WCFService1 \ servicefile.svc)

  4. Поскольку я не хочу развертывать вручную каждый раз, когда меняю службу, в пост-сборке каждого проекта службы WCF у меня есть задача пост-сборки, которая копирует содержимое каталога bin в каталог bin сайта. для соответствующей службы WCF (однократная настройка для пост-сборки)

  5. Моя структура папок такова, что для каждого сервисного проекта существует сервисный хост-сайт (веб-сайт) на одном уровне, поэтому постбилд также очень прост.

  6. Когда я запускаю свой клиент WCF (F5), сервисные проекты компилируются, их содержимое копируется в корзину веб-сайтов (то есть автоматически развертывается в IIS), и я могу отлаживать любой сервис, просто войдя в код как мои услуги находятся в том же решении, что и мой клиент WCF

Дополнительным преимуществом этого подхода является то, что моя отладка (по крайней мере, служб) также использует IIS, аналогично тому, как будет выглядеть моя производственная настройка.

Редактировать: я не помещаю хост-проекты служб (веб-сайты) в мое решение, так как в противном случае при запуске моего клиента WCF VS открывает экземпляр cassini для каждого из них, что раздражает, и в любом случае я не нуждаюсь или не использую

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