В чем разница между конечной точкой WSDL & Mex в 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-это две разные схемы, чтобы сообщить потенциальным клиентам о структуре вашего сервиса. Так что вы можете выбрать либо сделать ваши контракты на обслуживание public as (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 в config и httpgetenable будут выглядеть следующим образом?

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

ты сказал

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

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

если я поставил httpGetEnabled="false" then the WSDL будет невозможно создать?

2 ответов


1) в устаревшей веб-службе мы создаем прокси с помощью wsdl. WSDL expose web мета-данные услуги. в 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 является ложным или правда ?

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

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

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

поэтому MEX более конфигурируемы, в то время как WSDL более совместим со старыми версиями клиентов и non-.net клиенты, которые работают с WSDLs.

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

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

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

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

обновление

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

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

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

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

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

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

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


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

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