WCF всегда использует SOAP для отправки информации по привязке?

Я понимаю, что можно выбрать из диапазона привязки, такой как TCP, HTTP, HTTPS и т.д.

Я корректен в размышлении, что это всегда использует SOAP для отправки данных по этому соединению? Я смотрю руководство по WCF, и он говорит о том, как исключения сериализируются в SOAP и отправляются клиенту. Я думал бы, что не вся привязка будет использовать SOAP для отправки данных, таким образом, я буду немного смущен тем, как это работает.

Хотя я понимаю основные принципы WCF, как настроить сервисы и использовать прокси на клиенте, это, кажется, не объяснило точно, как данные упаковываются для отправки.

Возможно, ответ очевиден, что он просто использует XML / SOAP, но я хотел бы знать наверняка!

8
задан NibblyPig 3 May 2010 в 20:03
поделиться

1 ответ

Нет, не все. WebHttpBinding разработан на основе протоколов REST (HTTP GET, POX, JSON и т. Д.)

Технически WCF является просто общим протоколом обмена сообщениями и может использовать любой тип кодирования. По умолчанию и наиболее распространенными кодировками являются basicHttpBinding и wsHttpBinding , которые основаны на SOAP / XML.

Затем у вас есть netTcpBinding , который использует двоичную кодировку сообщений, netMsmqBinding , который использует протокол Microsoft Message Queue (MSMQ), и так далее. На самом деле нет жесткого формата для сообщений в WCF.

SOAP имеет собственную спецификацию для сериализации исключений (ошибок AKA), поэтому поведение всегда более или менее одинаково, когда вы используете привязку на основе SOAP; когда вы используете другие привязки, поведение при сбое может значительно отличаться, в некоторых случаях фактически проглатывая исключения, если вы не переопределите поведение по умолчанию (это то, что происходит в webHttpBinding ).

22
ответ дан 5 December 2019 в 07:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: