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