Чтобы ответить на эти вопросы:
Мы провели несколько тестов и выяснили
что, когда мы добавляем привязки в
IIS, он не обновляет конфигурационный файл
наш сервис. Это означает, что мы бы
необходимо поддерживать конфигурацию в
два разных места. Это не логика,
верно?
Когда вы используете IIS для размещения своей службы, вы должны сконфигурировать свой файл App.config или файл web.config, чтобы IIS предоставил некоторую привязку, поэтому в файле конфигурации вы поместите всю разрешенную привязку в свой wcf оказание услуг. Http, net.tcp и т.д ...
В вашей привязке вы не будете указывать адрес, потому что вы будете указывать эти адреса непосредственно в IIS.
В IIS вы должны разрешить привязку, доступную в дополнительных настройках вашего веб-сайта. После этого вы установите новую привязку для вашего веб-сайта «веб-сервис» и добавите все привязки, которые хотите прослушать, и укажите адрес.
Вы будете указывать адрес непосредственно в IIS.
Вот пример.
Ваш файл конфигурации:
<services>
<service name="ServiceName">
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="httpMode"
contract="IContract" />
<endpoint address=""
binding="netTcpBinding"
contract="IContract" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
В вашей настройке IIS добавится
http, net.tcp во включенных протоколах
После этого вы перейдете в привязку к IIS. Поместите свою привязку для http normaly и добавьте новую привязку net.tcp, в конфигурации привязки укажите порт и виртуальный каталог, например
8001 *
Этот параметр разрешает все подключения к порту 8001 для любого виртуального каталога.
На вашем сервере также должна быть установлена функция «Активация WCF (Активация Http и Активация без Http)».