WCF 4.0 по умолчанию добавляет конечную точку WebHttpBinding - PullRequest
1 голос
/ 16 января 2011

Есть ли способ сделать это глобально, автоматически для всех моих служб WCF через конфигурацию в WCF 4.0?

То есть, я знаю, что WCF 4.0 предоставляет новые методы настройки, которые по умолчанию применяют определенные поведения ко всем размещеннымконечные точки, и что вам больше не нужно явно указывать отдельные конечные точки с помощью конфигурации ... но я могу сделать что-то в конфигурации, которая говорит, чтобы автоматически размещать все службы с BasicHttpBinding и WebHttpBinding (используя относительный адрес / web дляWebHttpBinding)?Или мне все еще нужно использовать собственный ServiceHostFactory для этого?

Спасибо.

1 Ответ

2 голосов
/ 16 января 2011

См. Введение разработчика в WCF 4 , где много интересных вещей в WCF 4.

Одна из новых функций называется сопоставление протокола по умолчанию , и это в сочетании с конечными точками по умолчанию, предоставленными WCF 4, может решить вашу проблему.

Конечные точки по умолчанию означают, что WCF 4 будет предоставлять одну конечную точку для каждого контракта, реализуемого вашим классом обслуживания (обычно только 1), и для каждого базового адреса, определенного в вашей конфигурации (или кода для ServiceHost).

Чтобы обеспечить автоматическое раскрытие конечной точки http:// с помощью webHttpBinding, вам также необходимо переопределить системное значение по умолчанию (равное basicHttpBinding), что можно сделать благодаря сопоставлениям протоколов.

<configuration>
  <system.serviceModel>
    <protocolMapping>
      <add scheme="http" binding="webHttpBinding"/>
    </protocolMapping>
  </system.serviceModel>
</configuration>
...