У меня есть решение в VS2010 с 3 проектами:
- WCFServiceLib - проект, созданный с помощью шаблона библиотеки служб WCF.
- ServiceHostConsole - проект, созданный с помощью шаблона Консольного приложения.
- ServiceClientConsole - проект, созданный с помощью шаблона Консольного приложения.
Шаблон VS создал app.config в WCFServiceLib, который содержит все настройки для служб, которые я хочу предоставить.
ServiceHostConsole имеет WCFServiceLib в качестве ссылки и размещает службу, но не имеет своего собственного файла app.config.
Если я пытаюсь запустить хост-проект без app.config, он не может разместить службы, поэтому я переместил app.config из WCFServiceLib в ServiceHostConsole.
ServiceClientConsole имеет ссылку Service на службу внутри WCFServiceLib. Но как только я переместил app.config из проекта Lib в проект Host, я больше не могу обновлять ссылку на службу или добавлять новые службы, которые я добавил в проект lib.
Чтобы клиентский проект мог видеть ссылки на сервисы, я должен переместить app.config обратно в проект lib, выполнить обновления / добавления к ссылкам на сервисы на клиенте, а затем переместить app.config обратно в хост-проект. .
Обратите внимание, что я не могу оставить дубликат файла app.config как в проекте Service Lib, так и в проекте Host, поскольку это приведет к тому, что узел также не сможет запуститься. В любом случае это было бы плохим решением, так как в разных местах создавались бы дублированные конфигурации. Изменение только одного из них может создать проблемы, которые трудно отследить.
Кажется очень странным, что такое перемещение файла app.config должно произойти, чтобы заставить вещи работать как для хоста, так и для клиента, и что они не могут работать одновременно одновременно.
Я уверен, что это должно быть проблемой с тем, как я настраиваю вещи (хотя я настраивал их с помощью шаблонов по умолчанию), и я думаю, что должен быть лучший способ решить эту проблему.
Эта проблема становится очень раздражающей, когда вы активно разрабатываете сервисы и вам необходимо постоянно запускать хост и тестировать клиент с обновленными сервисами, отсюда и название вопроса:
Как вы поддерживаете сервисную библиотеку WCF в VS2010 для проектов как хоста, так и клиента?