Подтвердить что ты не робот

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

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

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

  • В чем смысл httpGetEnabled="false" or httpGetEnabled="true"?

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

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

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

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

  • Как отключить mex и выставить свою услугу только через WSDL?

  • WSDL support all bidning like wshttp,wsdualhttp or tcp etc... Если возможно, подробно расскажите о wsdl и mex.

UPDATE

Вы сказали

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, чтобы получить URL-адреса, которые вы не можете настроить (скажем, для ограничений безопасности или для Обратная совместимость). Конечные точки MEX отображают метаданные настраиваемые конечные точки и могут использовать разные типы транспортов, таких как TCP или HTTP, и различные типы механизмов безопасности.

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

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

4b9b3361

Ответ 1

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

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

2) в чем смысл httpGetEnabled = "false" или httpGetEnabled = "истина"

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

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

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

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

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

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

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

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

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

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

UPDATE

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

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

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

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

MEX и WSDL выводят почти то же самое.

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

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

Ответ 2

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

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