WCF - разница между поведением и контрактом?
В WCF, в чем разница между Поведением и Контракт? Изучив конфигурационный файл, оба, похоже, указывают на интерфейс функциональности службы. Почему они оба нужны?
Ответы
Ответ 1
Версия Cole Notes:
-
Контракт указывает, что на самом деле делает служба. Другими словами, действительны Операции.
-
Конечная точка указывает фактический исполняемый экземпляр службы. Это фактическая "служба" в том смысле, что она выполняется либо как служба Windows, либо под IIS.
-
Поведение службы определяет, как конечная точка взаимодействует с клиентами. Атрибуты, такие как безопасность, concurrency, кэширование, ведение журнала и т.д. - все это часть поведения.
-
Существует также Operation Behavior, который похож на поведение службы, но применяется только при выполнении конкретной операции.
Для получения дополнительной информации я предлагаю вам начать с Обзор архитектуры WCF.
Ответ 2
Немного поздно для ответа, но
- поскольку я в настоящее время борется с различием между двумя
- и поскольку это один из первых результатов в Google
- и потому, что текущие ответы не дали мне этого момента ахи
следующее в двух словах, что привело меня к свету (cudo к Fred Yang)
ServiceContract
- влияет на поведение клиентов и сервера
- может применяться как к интерфейсу, так и к классу
- влияет на исходящий WSDL.
ServiceBehavior
- влияет только на поведение сервера.
- применим только к реализации класса
- не влияет на WSDL
Из ServiceContract vs ServiceBehavior
В WCF атрибут ServiceContract влияет на поведение обоих клиентов и сервер, в то время как ServiceBehavior влияет только на поведение сервера. ServiceContract может применяться как к интерфейсу, так и к классу, но ServiceBehavior может применяться только к реализации класса. ServiceContract влияет на источник wsdl, но ServiceBehavior не будет влияют на излучение wsdl.
Ответ 3
Контракт - это интерфейс - он определяет сервисные операции, предоставляемые службой WCF, которые могут или не могут соответствовать 1:1 интерфейсу без приложения вашего приложения.
Поведение - это реализация этого интерфейса на хосте - для всех целей и задач "служба".
Ответ 4
Контракт - это договор между клиентом и поставщиком услуг. Он сообщает, какие данные будут отображаться.
Поведение службы - это поведение службы, которое сообщает, как будет работать служба, когда клиент попадет в службу. Предположим, если несколько клиентов бьют службу, то может ли она обрабатывать запрос или нет, как обрабатывать несколько запросов, что делать, чтобы обрабатывать несколько запросов. Эти вещи управляются поведением службы.