Разница между веб-ссылкой и сервисной ссылкой?
В чем разница между веб-ссылкой и сервисной ссылкой в WCF? Что предпочтительнее в WCF?
5 ответов
Низкоуровневый ответ здесь заключается в том, что веб-ссылка создаст прокси-класс клиента, который позволит вашему коду взаимодействовать с веб-службой, описанной через WSDL, и обмениваться данными через SOAP или HTTP GET (другие авторы указывают, что это только ASMX, но Веб-ссылки также могут взаимодействовать с веб-службами на основе Java, Python или Ruby, если они все используют WSDL и соответствуют стандарту взаимодействия WS-I).
Ссылка на службу создаст прокси-класс клиента, который взаимодействует со службой на основе WCF: независимо от того, является ли эта служба WCF веб-службой или нет.
Веб-ссылка позволяет вам общаться с любым сервисом, основанным на любой технологии, которая реализует Базовый профиль 1.1 WS-I, и предоставляет соответствующие метаданные как WSDL. Внутренне он использует коммуникационный стек ASMX на стороне клиента.
Справочник услуг позволяет вам общаться с любым сервисом, основанным на любой технологии, которая реализует любой из многих протоколов, поддерживаемых WCF (включая, но не ограничиваясь базовым профилем WS-I). Внутренне он использует коммуникационный стек WCF на стороне клиента.
Обратите внимание, что оба эти определения достаточно широки, и оба включают службы, написанные не на.NET.
Вполне возможно (хотя и не рекомендуется) добавить веб-ссылку, которая указывает на службу WCF, если конечная точка WCF использует basicHttpBinding
или какой-нибудь совместимый пользовательский вариант.
Также можно добавить ссылку на службу, которая указывает на службу ASMX. При написании нового кода вы всегда должны использовать Service Reference просто потому, что она более гибкая и ориентирована на будущее.
Ссылка на службу является более новым интерфейсом для добавления ссылок на все виды служб WCF (они могут не быть веб-службами), тогда как веб-ссылка специально связана с веб-ссылками ASMX.
Вы можете получить доступ к веб-ссылкам с помощью расширенных опций в Добавить ссылку на службу (если я правильно помню).
Я бы использовал ссылку на сервис, потому что, насколько я понимаю, это более новый механизм из двух.
Ссылки на сервисы имеют дело с конечными точками и привязками, которые полностью настраиваются. Они позволяют вам направлять ваш клиентский прокси на WCF через любой транспортный протокол (HTTP, TCP, Shared Memory и т. Д.)
Они предназначены для работы с WCF.
Если вы используете WebProxy, вы в значительной степени привязываетесь к использованию WCF через HTTP
Еще один момент, который следует принять во внимание, заключается в том, что новый пользовательский интерфейс для Service Interface даст вам гораздо больше гибкости в том, как вы хотите создать свой прокси-класс. Например, это позволит вам сопоставить контракты данных с существующими библиотеками, если они совпадают (фактически это поведение по умолчанию).