В чем разница между WSDL и Mex Endpoint в WCF

У меня есть пара вопросов по конечной точке mex.

  1. В устаревших веб-сервисах мы создаем прокси с помощью wsdl. WSDL предоставляет метаданные веб-службы. В wcf используется другой термин, обозначающий конечную точку mex, которая также предоставляет метаданные, но wsdl все еще жив в wcf. Я новичок в WCF, и я смущен относительно difference between wsdl & mex endpoint?

  2. Каково значение httpGetEnabled="false" or httpGetEnabled="true"?

  3. Если я установлю httpGetEnabled="false" тогда что будет? Означает ли это, что клиент не сможет добавить ссылку на сервис из своей IDE? Но если я установлю httpGetEnabled="false"и увидел, что клиент может добавить ссылку на услугу. Что за httpGetEnabled настройка очень сбивает с толку.

  4. Один парень сказал

MEX и WSDL - две разные схемы, чтобы рассказать потенциальным клиентам о структуре вашего сервиса. Таким образом, вы можете сделать ваши сервисные контракты общедоступными как (MEX) или WSDL.

Если приведенное выше утверждение верно, то скажите мне, когда использовать MEX и когда использовать WSDL?

  1. Как я могу отключить mex и выставить мой сервис только через WSDL?

  2. WSDL support all bidning like wshttp,wsdualhttp or tcp etc... Если возможно, пожалуйста, обсудите wsdl & mex в деталях.

ОБНОВИТЬ

Вы сказали

5. How can I disable mex and expose my service only through WSDL?

Do not specifiy a mex endpoint in your config and use httpGetEnabled.

Вы хотите сказать, что в конфигурации не должно быть записи, связанной с конечной точкой mex, а httpgetenable будет выглядеть следующим образом?

<serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8080/SampleService?wsdl"/>

Вы сказали

WSDL обычно предоставляется через http или https, чтобы получить URL, которые вы не можете настроить (скажем, из-за ограничений безопасности или обратной совместимости). Конечные точки MEX предоставляют метаданные поверх настраиваемых конечных точек и могут использовать различные типы транспорта, такие как TCP или HTTP, и различные типы механизмов безопасности.

Вы сказали, что mex настраивается, а wsdl - нет. Что вы подразумеваете под mex is configurable? Обсудите, пожалуйста, какую конфигурацию поддерживает mex и как ее можно настроить.

Если я установлю httpGetEnabled="false" then the WSDL не удастся сгенерировать?

2 ответа

Решение

1) в устаревшем веб-сервисе мы создаем прокси, используя wsdl. WSDL предоставляет метаданные веб-службы. в wcf появляется другой термин, обозначающий конечную точку mex, которая также предоставляет метаданные, но wsdl все еще находится в wcf. Я новичок в wcf, поэтому я не понимаю, в чем разница между конечной точкой wsdl и mex?

Это почти то же самое, но mex разработан для поддержки не HTTP-протоколов и для расширенных сценариев настройки / безопасности. WSDL - это устаревший путь, а MEX - новая улучшенная версия с WCF.

2) что означает значение httpGetEnabled="false" или httpGetEnabled="true"

Он будет предоставлять метаданные через wsdl через url defautl, даже если вы не определили конечную точку mex для своего сервиса.

3) если я установлю httpGetEnabled="false", что произойдет? значит ли это, что клиент не сможет добавить ссылку на сервис из IDE? но я установил httpGetEnabled="false" и увидел, что клиент может добавить ссылку на службу. так что меня очень смущает, что httpGetEnabled имеет значение false или true?

Клиент может добавить ссылку в VS только в том случае, если httpGetEnabled/httpsGetEnabled включен или если вы указали конечную точку mex в конфигурации вашей службы. Лучшая практика заключается в том, чтобы предоставлять метаданные для среды разработки, а не для производства. Вы также можете распространять свои сервисные контракты через отдельные сборки и использовать ChannelFactory,

4) один парень сказал:- MEX и WSDL - две разные схемы, чтобы рассказать потенциальным клиентам о структуре вашего сервиса. Таким образом, вы можете сделать ваши сервисные контракты общедоступными как (MEX) или WSDL. если приведенное выше утверждение верно, то скажите мне, когда использовать MEX и когда использовать WSDL?

WSDL обычно предоставляется через http или https, чтобы получить URL, которые вы не можете настроить (скажем, из-за ограничений безопасности или обратной совместимости). Конечные точки MEX предоставляют метаданные поверх настраиваемых конечных точек и могут использовать различные типы транспорта, такие как TCP или HTTP, и различные типы механизмов безопасности.

Таким образом, MEX более настраиваемый, в то время как WSDL более совместим со старыми версиями клиентов и клиентов, отличных от.net, которые работают с WSDL.

5) как я могу отключить mex и выставить мой сервис только через WSDL

Не указывайте конечную точку mex в вашей конфигурации и используйте httpGetEnabled

6) WSDL поддерживает все ставки, такие как wshttp, wsdualhttp или tcp и т. Д.

Предоставление метаданных полностью отличается от вызова службы.

ОБНОВИТЬ

вы пытаетесь указать, что в конфигурации не должно быть записи, связанной с конечной точкой mex, и httpgetenable будет выглядеть так:

Да, вам не нужно указывать конечную точку mex И httpGetEnabled. Только один требуется для предоставления метаданных. Не указывайте httpGetUrl, так как это зависит от среды вашего хостинга.

вы сказали, что mex настраивается, а wsdl - нет. что ru пытается сказать, что mex настраивается... пожалуйста, обсудите, какую конфигурацию поддерживает mex и как ее настроить.

Конечные точки MEX - это специальные конечные точки, которые позволяют клиентам получать метаданные службы, используя сообщения SOAP вместо запросов http get. Вы можете создать конечную точку MEX, к которой можно получить доступ через http, https, tcp и даже по именованным каналам. HttpGetEnable позволяет вам предоставлять метаданные с помощью метода HTTP GET, обычно это адрес службы с суффиксом "? Wsdl"

MEX и WSDL выводят почти одно и то же.

В большинстве случаев нет необходимости в конечной точке MEX - обычно достаточно использовать WSDL с http get.

Я понимаю ваше намерение понять эту часть, но не тратьте много раз на это: есть так много других сложных функций!

Конечные точки MEX - это специальные конечные точки, которые позволяют клиентам получать метаданные службы, используя сообщения SOAP, а не только запросы HTTP get (т.е. httpGetEnabled="true"). Вы можете создать конечную точку MEX, к которой можно получить доступ через http, https, tcp и даже по именованным каналам.

Ответ, который вы получите при вызове операции GetMetadata конечной точки MEX, будет включать содержимое WSDL и все файлы XSD, связанные с ним.

Другие вопросы по тегам