Что такое «конечная точка» в WCF? - PullRequest
50 голосов
/ 14 апреля 2009

У меня сложилось впечатление, что конечная точка была определена в файле конфигурации как список возможных клиентов, но это не имеет смысла (в том смысле, что я предполагал, что в нем указано, какие компьютеры могут подключаться к службе), сейчас я собираю что это скорее определение, так кто-нибудь, пожалуйста, объясните, что для меня является конечной точкой? Я понимаю концепцию определения интерфейса контракта и затем реализации контракта, но я теряюсь где-то между этим и на самом деле получаю что-то полезное.

Что такое адрес в этом контексте? адрес хоста?

Привязка - это способ связи / протокол для правильного использования?

контракт - это, по сути, "объект, которым делятся" (да, я знаю, что это технически некорректно, но работайте со мной здесь)

Ответы [ 7 ]

70 голосов
/ 14 апреля 2009

Конечная точка - это то, что предоставляет служба, и в терминах WCF она состоит из трех вещей:

  • Адрес
  • Binding
  • Договор

Адрес - это URL, по которому может быть достигнута конечная точка.

Привязка диктует применяемые преобразования, а также форму (в некоторой степени) сообщений, отправляемых для выполнения Договора по адресу.

Контракт диктует, какие операции подвергаются по адресу. Это именно то, что говорится, это контракт, указывающий, какие вызовы допустимы.

В большинстве случаев люди помнят это как A B C.

Несколько замечаний:

Привязка обычно представляет собой комбинацию каналов с примененным поведением; каналы, являющиеся элементами стека каналов, которые изменяют сообщение и выполняют действия до того, как они попадут в реализацию сервиса.

Хотя обычно он представлен интерфейсом в .NET, не требуется, чтобы контракт был представлен таким образом. Некоторые сторонники первого дизайна будут определять схемы для сообщений, которые будут отправлены для запроса, и сначала для ответа, что и делает WCF-интерфейс интерфейса .NET Contract.

17 голосов
/ 14 апреля 2009

Я собираюсь процитировать Программирование WCF-сервисов Ювала Лоуи здесь:

Каждый сервис связан с адресом, который определяет, где услуга, связывание, которое определяет, как общаться с сервис, и контракт, который определяет, что сервис делает. это Триумвират, управляющий службой, легко запомнить как азбуку сервис.

WCF формализует эти отношения в виде конечной точки. Конечная точка - это слияние адреса, договора и привязки.

Каждая конечная точка должна иметь все три элемента, и хост предоставляет конечная точка.

12 голосов
/ 12 апреля 2014

Конечные точки в WCF
Служба WCF - это программа, которая предоставляет коллекцию конечных точек. Каждая конечная точка - это портал для общения с миром. Конечная точка состоит из трех компонентов.
1) Адрес :
Определяет, где находится сервис
бывший - http://www.test.com:8001/MyService
2) Привязки :
Привязка, которая указывает, как клиент может взаимодействовать с конечной точкой.
ex - BasicHttpBinding, WSHttpBinding, WSDualHttpBinding и т. д.
3) Контракты :
Контракт, который определяет доступные операции

Конечные точки будут упомянуты в файле web.config созданного сервиса.

5 голосов
/ 11 мая 2013

Конечная точка службы имеет адрес, привязку и контракт. Адрес конечной точки - это сетевой адрес, где находится конечная точка. Класс EndpointAddress представляет адрес конечной точки WCF. Привязка конечной точки указывает, как конечная точка взаимодействует с миром, включая такие вещи, как транспортный протокол (например, TCP, HTTP), кодирование (например, текст, двоичный код) и требования безопасности (например, SSL, безопасность сообщений SOAP). Класс Binding представляет привязку WCF. Контракт конечной точки указывает, что конечная точка передает, и, по сути, представляет собой набор сообщений, организованных в операциях, которые имеют базовые шаблоны обмена сообщениями (MEP), такие как односторонний, дуплексный режим и запрос / ответ. Класс ContractDescription представляет Контракт WCF.

3 голосов
/ 14 апреля 2009

См. здесь: Конечная точка службы указывает адрес, привязку и контракт, который будет использоваться для связи.

1 голос
/ 01 апреля 2014

Конечная точка службы имеет адрес, привязку и контракт. Адрес конечной точки - это сетевой адрес, где находится конечная точка. Класс EndpointAddress представляет адрес конечной точки WCF. Привязка конечной точки указывает, как конечная точка взаимодействует с миром, включая такие вещи, как транспортный протокол (например, TCP, HTTP), кодирование (например, текст, двоичный код) и требования безопасности (например, SSL, безопасность сообщений SOAP). Класс Binding представляет привязку WCF. Контракт конечной точки указывает, что конечная точка передает, и, по сути, представляет собой набор сообщений, организованных в операциях, которые имеют базовые шаблоны обмена сообщениями (MEP), такие как односторонний, дуплексный режим и запрос / ответ. Класс ContractDescription представляет Контракт WCF.

0 голосов
/ 28 марта 2016

Конечная точка веб-службы может скрывать некоторые или все из них. И на основании запроса может самостоятельно решить вопрос обработки запроса.

Инструмент SRJTester (доступен на Github) удобен для указания конечной точки, действий, протоколов и т. Д. При выполнении запроса на обслуживание.

...