Все о WSDL vs MEX?

Я не могу открыть URL-адрес метаданных http://localhost:8082/Tasks/mex, хотя Я добавил файл mexHttpBinding в файле конфигурации. Можно ли просмотреть эту конечную точку MEX в браузере?

Конфигурационные файлы выглядят так:

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

Вопросы:

  • Является ли MEX отличным от WSDL? Если нет, то почему мы требуем конечную точку MEX над WSDL?
  • В WSDL я вижу, что информация типа WSDL отсутствует. Это по умолчанию? Могу ли я посмотреть информацию о типе в WSDL?

Ответ 1

Aakash, добавили ли вы поведение службы с помощью <serviceMetadata> элемент? Он может быть пустым, то есть < serviceMetadata/ > , но он должен присутствовать. Определение службы должно ссылаться на поведение службы. Конфигурация. Ознакомьтесь с приведенными ниже примерами:

http://www.request-response.com/blog/PermaLink,guid,c9513d28-f580-4a33-b4e8-c15476799a9d.aspx

Ответ 2

Обратитесь serviceMetadata для получения дополнительной информации о файле конфигурации WCF.

Чтобы ответить на ваши вопросы, MEX - это новый стандарт W3C для представления информации об описании услуги; WSDL был предыдущим методом. Если вам нужно разрешить более старым клиентам получать доступ к вашей информации о описании услуги, вам может потребоваться предоставить эту информацию через WSDL.

Информация для раскрытия вашей информации описания сервиса как WSDL (httpGetEnabled) также находится в ссылке, приведенной выше.

Кроме того, попробуйте использовать wcftestclient.exe для доступа к вашей службе WCF. Он предоставляет больше функциональности и информации, чем браузер.

Ответ 3

Если вы посмотрите на эту конечную точку, вы увидите, что она выглядит как любая другая конечная точка. Там даже контракт на обслуживание (IMetadataExchange). Вы можете посмотреть System.ServiceModel.Description.IMetadataExchange и посмотреть, что это за контракт.