В чем разница между wsHttpBinding и ws2007HttpBinding?
В MSDN мы можем прочитать:
Класс WS2007HttpBinding добавляет привязанную к системе привязку, аналогичную WSHttpBinding, но использует стандартные версии протоколов ReliableSession, Security и TransactionFlow для организации стандартов стандартизации структурированных информационных стандартов (OASIS). При использовании этой привязки не требуется никаких изменений в объектной модели или настройках по умолчанию.
Но я не нахожу документацию, которая может объяснить мне. ПОЧЕМУ я хотел бы переместить wsHttpBinding в ws2007HttpBinding, мне кажется, что стандарт тот же.
Может кто-нибудь может дать мне хорошее объяснение?
Ответы
Ответ 1
Связи поддерживают разные протоколы. На этой странице в MSDN есть хорошая матрица, которая объясняет, какие протоколы поддерживаются привязкой в WCF. Поэтому, если вам требуется взаимодействие с службами/клиентами, которые реализуют протоколы OASIS, используйте привязку ws2007httpbinding, иначе нет причин не использовать wshttpbinding.
Если вы хотите подробно ознакомиться с различными протоколами, ознакомьтесь с их сайтами: WC3 и OASIS. Я уверен, что есть тонны ресурсов, которые подчеркивают различия в этих протоколах.
Различные крупные предприятия и правительства должны использовать веб-службы и иметь разные требования. Таким образом, разные стандарты имеют смысл.
Ответ 2
Из книги OReilly "Программирование WCF-сервисов" (с .28-29) говорят, что Ws2007HttpBinding происходит от WsHttpBinding. Он добавляет поддержку нового стандарта и обновлений для стандартов транзакций, безопасности и надежности.
Ответ 3
Использование последнего стандарта звучит как хорошая практика, но просто имейте в виду, что WS2007HttpBinding поддерживается только клиентами, которые работают как минимум с .NET версии 3.5 SP1 или 3.0 с пакетом обновления 1 (SP1).
Ответ 4
ws2007HttpBinding, определяемое OASIS, является более новой версией, чем wsHttpBinding.
Он добавил протоколы ReliableSession, Security и TransactionFlow поверх транзакций, надежных сообщений и протоколов WS-адресации wsHttpBinding.
Легче начать с простой привязки, и, если это потребуется в будущем, вы всегда можете открыть существующие службы в более новой привязке, сосуществующей со старой версией.