Как использовать файл WSDL для создания прокси-сервера WCF?

У меня есть старый файл WSDL, и я хочу использовать WCF для связи со службой.

WSDL генерируется из ASMX (я полагаю, но не уверен).

Какие шаги необходимо предпринять для связи с ним?


person Raha    schedule 03.06.2009    source источник
comment
Не имеет значения, что сгенерировало WSDL.   -  person Cheeso    schedule 03.06.2009


Ответы (3)


Используйте svcutil.exe, чтобы создать прокси WCF для вызова службы. Подробности здесь.

person Anderson Imes    schedule 03.06.2009
comment
Хорошо, я попробую! В Visual Studio и Windows SDK есть файл wsdl.exe. Я использовал это для создания прокси-класса, это то же самое, что и svcutil.exe? Как мне использовать этот прокси-сервер после создания файла прокси? - person Raha; 04.06.2009
comment
Не то же самое. svcutil.exe - это инструмент, который будет генерировать прокси и заглушки (и другие вещи) для WCF. wsdl.exe делает то же самое для ASMX. С 2006 года WCF заменил ASMX в качестве предпочтительной среды программирования веб-сервисов в .NET. Итак, ASMX старый, WCF новый. - person Cheeso; 04.06.2009

Щелкните проект правой кнопкой мыши и выберите «Добавить ссылку на службу». Укажите на WSDL. Щелкните "ОК". Это должно быть все.

введите описание изображения здесь

person John Saunders    schedule 03.06.2009
comment
Мне не удалось найти кнопку обзора - пришлось скопировать / вставить полный путь к файлу wsdl в Visual Studio 2010. - person Victor Chelaru; 30.11.2011
comment
Я не имел в виду кнопку просмотра. Что ты имеешь в виду? - person John Saunders; 30.11.2011
comment
О, я имел в виду, что я привык к приложениям, которые требуют, чтобы вы вводили имя файла, также имея кнопку Обзор или ..., чтобы вы могли выбрать местоположение. Пользовательский интерфейс Visual Studio немного вводит в заблуждение, поскольку не позволяет вам этого делать - вам нужно вручную скопировать / вставить расположение файла wsdl. Каким бы простым это ни было после того, как я узнал об этом, сначала это определенно сбивало с толку. - person Victor Chelaru; 08.12.2011

wsdl.exe - это старый способ создания прокси-сервера веб-службой (1.1). Первое, что нужно попробовать, это «Добавить ссылку на службу», как уже упоминалось. Это использует svcutil.exe для создания прокси. Если вам нужен больший контроль над созданием прокси, вы можете использовать svcutil.exe из командной строки с различными переключателями.

С учетом сказанного ... У меня были проблемы со старыми wsdls веб-служб. В частности, старая веб-служба Apache AXIS, содержащая перегруженные операции. См. Мой пост здесь для получения полной информации. (Моя проблема все еще не решена. Надеюсь, вы не столкнетесь с такими же проблемами, но если вы это сделаете и выясните их, пожалуйста, ответьте на мой вопрос. :)

person Mark Good    schedule 04.06.2009
comment
В веб-сервисах нет концепции перегрузки. Apache должен был знать лучше, и, надеюсь, они уже узнали. Они также использовали для забавных вещей, таких как создание схем, которые ссылаются на такие типы, как apachesoap: XmlElement, а затем не определяют эти типы. Вероятно, хорошо сработало, если бы вы использовали код Apache для использования службы, но не иначе. - person John Saunders; 04.06.2009
comment
Спасибо за комментарий, Джон. Судя по всему, WSDL 1.1 допускал перегрузки? (см. webservices.xml.com/pub/a/ ws / 2003/01/08 / randyray.html) Та же служба, о которой я упоминал, включала в себя ряд типов ошибок, которые svcutil не мог понять. У меня было чертовски много времени, чтобы заставить его работать, и только после того, как я внес значительные правки в код прокси. - person Mark Good; 04.06.2009