Справочник по веб-ссылке и сервису

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

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

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

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

PayPalAPIAAInterfaceClient
PayPalAPIInterfaceClient 

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

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

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

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

Ответ 1

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

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

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

alt text

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

Ответ 2

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

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

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

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

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

Ответ 3

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

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

Ответ 4

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

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