Представьте себе разработку решения WCF с двумя проектами (служба WCF / и веб-приложение в качестве клиента WCF). Пока я разрабатываю эти два проекта в visual studio и обращаюсь к клиенту (веб-приложению) в качестве ссылки на сервер, проблем не возникает. Visual Studio автоматически назначает порт для WCF-сервера и настраивает все необходимые настройки, включая привязку сервера и клиента к чему-либо подобному на сервере:
<service behaviorConfiguration="DefaultServiceBehavior"
name="MYWCFProject.MyService">
<endpoint address="" binding="wsHttpBinding" contract="MYWCFProject.IMyService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8731/MyService.svc" />
</baseAddresses>
</host>
</service>
и в клиенте:
<client>
<endpoint address="http://localhost:8731/MyService.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IMyService"
contract="MyWCFProject.IMyService"
name="WSHttpBinding_IMyService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
Проблема в том, что я хочу часто публиковать эти два проекта на двух разных серверах, поскольку мои производственные серверы и URL-адрес службы будут иметь значение "http://mywcfdomain/MyService.svc".. ,
Вопрос в том, есть ли какая-либо функция в Visual Studio 2008 для автоматического изменения URL-адресов или мне нужно определить две разные конечные точки, и я задаю их в своем коде (на основе параметра в моей конфигурации, например, «Разработка / Опубликован»).