BasicHttpBinding против WsHttpBinding против WebHttpBinding - PullRequest
279 голосов
/ 16 апреля 2010

В WCF существует несколько различных типов привязок на основе HTTP:

В чем различия между этими 3?

В частности, каковы различия в характеристиках / производительности и совместимости?

1 Ответ

494 голосов
/ 16 апреля 2010

Вы сравниваете яблоки с апельсинами здесь:

  • 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...