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