В WCF есть несколько разных типов привязок на основе HTTP:
Каковы различия между этими 3?
В частности, каковы различия с точки зрения функций / производительности и совместимости?
В WCF есть несколько разных типов привязок на основе HTTP:
Каковы различия между этими 3?
В частности, каковы различия с точки зрения функций / производительности и совместимости?
Ответы:
Вы сравниваете яблоки с апельсинами здесь:
webHttpBinding - это привязка в стиле REST, когда вы просто нажимаете на URL и получаете загруженный файл XML или JSON из веб-службы.
basicHttpBinding и wsHttpBinding - это две привязки на основе SOAP, которые сильно отличаются от REST. Преимущество SOAP состоит в том, что WSDL и XSD описывают сервис, его методы и данные, передаваемые в мельчайших деталях (REST пока не имеет ничего подобного - пока). С другой стороны, вы не можете просто перейти к конечной точке wsHttpBinding с помощью своего браузера и посмотреть на XML - вы должны использовать клиент SOAP, например, WcfTestClient или ваше собственное приложение.
Итак, ваше первое решение должно быть: REST против SOAP (или вы можете выставить оба типа конечных точек из вашего сервиса - это тоже возможно).
Затем между basicHttpBinding и wsHttpBinding существуют следующие различия:
basicHttpBinding - это очень базовая привязка - SOAP 1.1, не очень с точки зрения безопасности, не так уж много с точки зрения возможностей, но совместимая практически с любым клиентом SOAP -> отличная для взаимодействия, слабая для функций и безопасности
wsHttpBinding - это полнофункциональная привязка, которая поддерживает множество функций и стандартов WS- * - она имеет гораздо больше функций безопасности, вы можете использовать сеансовые соединения, вы можете использовать надежный обмен сообщениями, вы можете использовать транзакционный контроль - просто намного больше вещей , но wsHttpBinding также намного «тяжелее» и добавляет много накладных расходов к вашим сообщениям, когда они передаются по сети
Для подробного сравнения (включая таблицу и примеры кода) между этими двумя статьями ознакомьтесь с этой статьей проекта кода: Различия между BasicHttpBinding и WsHttpBinding