Да, если ваша конфигурация действительна, не имеет значения, где на каком сервере используется служба.
И да - клиенту все придется использовать одну и ту же конфигурацию - вам в основном нужно указать «ABC's WCF» - адрес, привязку (и, возможно, обязательную конфигурацию) и контракт - WHERE, HOW и WHAT вашего оказание услуг.
Вы можете разделить множество конфигураций - особенно связующих конфигураций - между сервером и клиентом с помощью этого метода: экстернализировать определенные части конфигурации.
В вашем сервере, есть что-то вроде:
<system.serviceModel>
<bindings configSource="bindings.config" />
</system.serviceModel>
, а затем в файле bindings.config
определите:
<bindings>
<basicHttpBinding>
<binding name="BasicNoSecurity">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
Таким образом, вы можете скопировать этот файл bindings.config
клиентам, и ссылки это также из конфигурационного файла клиента - совместное использование одной и той же информации и обеспечение того, что на обоих концах сообщения будет одинаково и актуально.
Это также работает для любых других подразделов под номером <system.serviceModel>
(например, поведения, расширения и т. Д.).
Еще один вопрос: нужно ли нам сохранять конфигурацию WCF в web.config, и будет ли это означать, что всем веб-клиентам придется использовать одну и ту же конфигурацию? Цель состоит в том, чтобы иметь несколько клиентов, которые работают с этой настройкой. Я просто не совсем уверен, как обрабатывать конфигурацию для этого сценария. – Andrew
Вы можете хранить несколько привязок и т. Д. В файле web.config. – taylonr