Понимание связывания httpGetEnabled и Mex - PullRequest
3 голосов
/ 17 января 2011

В службе WCF я удалил привязку Mex по умолчанию и установил для атрибута httpGetEnabled в поведении службы по умолчанию значение false.

При этом я понимаю, что служба не позволяет загружать WSDL. Однако существующие клиенты службы будут работать без проблем.

Теперь, когда я просматриваю .svc в Internet Explorer, он советует 3 вещи, которые помогут мне увидеть структуру файла .svc.

  1. Создать поведение для службы.
  2. В элементе serviceMetadata создайте атрибут httpGetEnabled и установите для него значение true.
  3. Создать конечную точку привязки mex. то есть

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

Теперь позвольте мне перейти к моему вопросу.

Когда я просто задаю httpGetEnabled = "true", я могу загрузить WSDL. Я не вижу значения mex endpoint здесь.

Каково реальное значение конечной точки мекса здесь? Зачем нужно создавать конечную точку mex, когда только httpGetEnabled дает мне возможность загрузить WSDL?

1 Ответ

4 голосов
/ 17 января 2011

Конечная точка Mex становится значимой, только если вы хотите использовать WS-MetadataExchange вместо WSDL для захвата метаданных службы.Вы можете включить один или другой, или оба.

AFAIK, svcutil.exe может использовать либо WSDL, либо mex, так что это не так сильно беспокоит;но у вас могут быть клиенты, которые поддерживают только одну или другую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...