Я создаю сервис WCF, который на данный момент выставляет ряд контрактов с использованием basicHttpBinding. Однако теперь я хочу использовать службу локально на той же машине, и netNamedPipeBinding кажется более подходящим с точки зрения производительности. По этой причине я хочу предоставить сервис, используя именованный канал и HTTP.
В данный момент я делаю это со следующей конфигурацией:
<service name="WCFService.MyService" behaviorConfiguration="serviceBehaviour">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/MyService" />
<add baseAddress="net.pipe://localhost/MyService" />
</baseAddresses>
</host>
<endpoint address="calculator" binding="basicHttpBinding" contract="WCFService.ICalculatorService" />
<endpoint address="database" binding="basicHttpBinding" contract="WCFService.IDatabaseService" />
</service>
Кажется, это работает нормально, но при ближайшем рассмотрении конечные точки по-прежнему используют базовую привязку HttpBinding. Это работает, но у меня создается впечатление, что это создает ненужные накладные расходы.
Нужно ли создавать конечную точку для каждого контракта и каждого типа привязки (т. Е. BasicHttpBinding и netNamedPipeBinding) или я полностью ошибаюсь?
(Если не ясно, я довольно новичок в WCF!)