Разница между веб-ссылкой и сервисной ссылкой? - PullRequest
128 голосов
/ 21 ноября 2008

В чем разница между веб-ссылкой и сервисной ссылкой в ​​WCF? Что предпочтительнее в WCF?

Ответы [ 5 ]

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

Низкоуровневый ответ здесь заключается в том, что веб-ссылка создаст прокси-класс клиента, который позволяет вашему коду взаимодействовать с веб-службой, описанной через WSDL, и взаимодействует через SOAP или HTTP GET (другие авторы указывают, что это ASMX, но Web References также может взаимодействовать с веб-службами на основе Java, Python или Ruby, если они все используют WSDL и соответствуют стандарту взаимодействия WS-I).

Ссылка на службу создаст прокси-класс клиента, который взаимодействует со службой на основе WCF: независимо от того, является ли эта служба WCF веб-службой или нет.

66 голосов
/ 04 июня 2010

Веб-ссылка позволяет вам общаться с любым сервисом, основанным на любой технологии, которая реализует Базовый профиль 1.1 WS-I, и предоставляет соответствующие метаданные как WSDL. Внутренне он использует коммуникационный стек ASMX на стороне клиента.

Справочник по услугам позволяет вам общаться с любой службой, основанной на любой технологии, которая реализует любой из многих протоколов, поддерживаемых WCF (включая, но не ограничиваясь базовым профилем WS-I). Внутренне он использует коммуникационный стек WCF на стороне клиента.

Обратите внимание, что оба эти определения достаточно широки, и оба включают службы, не написанные на .NET.

Вполне возможно (хотя и не рекомендуется) добавить веб-ссылку, которая указывает на службу WCF, если конечная точка WCF использует basicHttpBinding или какой-либо совместимый пользовательский вариант.

Можно также добавить ссылку на службу, которая указывает на службу ASMX. При написании нового кода, , вы всегда должны использовать ссылку на сервис просто потому, что она более гибкая и ориентирована на будущее.

16 голосов
/ 21 ноября 2008

Ссылка на службу является более новым интерфейсом для добавления ссылок на все виды служб WCF (они могут не быть веб-службами), тогда как веб-ссылка специально касается веб-ссылок ASMX.

Доступ к веб-ссылкам можно получить с помощью расширенных параметров в справочнике добавления услуг (если я правильно помню).

Я бы использовал ссылку на сервис, потому что, насколько я понимаю, это более новый механизм из двух.

7 голосов
/ 21 ноября 2008

Сервисные ссылки имеют дело с конечными точками и привязками, которые полностью настраиваются. Они позволяют вам направлять ваш клиентский прокси на WCF через любой транспортный протокол (HTTP, TCP, Shared Memory и т. Д.)

Они предназначены для работы с WCF.

Если вы используете WebProxy, вы в значительной степени привязываетесь к использованию WCF через HTTP

5 голосов
/ 23 ноября 2008

Еще один момент, на который следует обратить внимание, заключается в том, что новый пользовательский интерфейс для Service Interface даст вам гораздо больше гибкости в том, как вы хотите создать свой прокси-класс. Например, это позволит вам сопоставить контракты данных с существующими библиотеками, если они совпадают (фактически это поведение по умолчанию).

...