Веб-ссылка против службы - PullRequest
105 голосов
/ 29 января 2010

Я только что ударил Paypal по огромной кирпичной стене. Я создал обычный проект C # для создания некоторых классов-оболочек, используя их WSDL.

Если вы создаете не веб-проект, вы можете добавить wsdl только для справки по веб-сервису. И это создает тот же набор прокси-классов, что и веб-справочник, но не совсем ... он добавляет больше, о чем даже парни из PayPal не знают.

Так что я все это время искал подходящий интерфейс в этом списке прокси-классов для использования в качестве службы (SoapBinding), и PayPalAPIAASoapBinding там не было, я продолжал говорить нашему контактному лицу PayPal.

Я мог видеть только следующие 2 интерфейса, которые показались мне тем, что мне нужно было использовать, поскольку я не увидел PayPalAPIAASoapBinding, который вы МОЖЕТЕ увидеть в справочнике услуг на основе Web Reference:

PayPalAPIAAInterfaceClient
PayPalAPIInterfaceClient 

Итак, я выяснил, о, я, вероятно, создал ссылку на службу вместо веб-ссылки, веб-ссылка которой является опцией в веб-проекте. Но я не хочу, чтобы моя ссылка на сервис была тесно связана с моим веб-проектом. Вот почему я создал проект C #.

Так что, черт возьми, Сервис Ссылка против Веб-Ссылка? И как я должен разделить это на другой проект, если Service Reference собирается запустить меня и дать мне набор интерфейсов, отличных от Web Reference?

Кроме того, чтобы сделать вещи еще более запутанными, VS 2008 имеет проект приложения веб-службы.

Так что мне использовать? Мы используем платформу .NET 3.5, и мы не готовы перейти на WCF . Так могу ли я использовать новую ссылку на сервис, даже если не использую WCF или как? Если вы используете .NET 3.5, а не WCF, но по-прежнему хотите использовать базовые веб-службы, вы все равно идете по пути обслуживания и просто не используете платформу WCF? То есть можно ли использовать его как веб-справочник по .NET 2.0, просто если вы собираетесь получить совершенно другое поколение WSDL?

Ответы [ 4 ]

204 голосов
/ 29 января 2010

Добавление веб-ссылки - это устаревшая технология устаревших веб-сервисов ASP.NET (ASMX) (использующая для своих целей только XmlSerializer) - если вы это сделаете, вы получите клиент ASMX для ASMX веб-сервис. Это можно сделать практически в любом проекте (веб-приложение, веб-сайт, консольное приложение, Winforms - назовите его).

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

Поскольку вы не готовы перейти на WCF, вы также можете добавить веб-ссылку старого стиля, если вам действительно необходимо: когда вы делаете «Добавить ссылку на службу», в появившемся диалоговом окне нажмите кнопка [Advanced] в левом углу кнопки:

alt text

и в следующем диалоговом окне нажмите кнопку [Добавить веб-ссылку] внизу.

8 голосов
/ 29 января 2010

Если я правильно понял ваш вопрос:

Чтобы добавить ссылку на веб-службу .net 2.0 вместо ссылки на службу WCF, щелкните правой кнопкой мыши свой проект и выберите «Добавить ссылку на службу».

Затем нажмите «Дополнительно ...» в левом нижнем углу диалогового окна.

Затем нажмите «Добавить веб-ссылку ..» в левом нижнем углу следующего диалога.

Теперь вы можете добавить обычную веб-ссылку SOAP, как вы ищете.

4 голосов
/ 29 января 2010

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

Если вы абсолютно уверены, что не готовы к WCF (на самом деле не знаете, почему), то вам следует создать регулярную ссылку на веб-сервис.

3 голосов
/ 12 мая 2014

В конце концов, оба делают одно и то же. В коде есть некоторые различия: веб-сервисы не добавляют корневое пространство имен проекта, но Service Reference добавляет классы сервиса в пространство имен проекта. Класс ServiceSoapClient получает другое имя, что не важно. При работе с TFS я бы предпочел использовать Service Reference, потому что она лучше работает с контролем версий. Оба работают с протоколами SOAP.

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

...