Как создать ссылку на сервис только с физическим файлом wsdl

Я создавал и использовал веб-службы в течение многих лет и всегда мог использовать Visual Studio для создания ссылки на службу от клиента. У меня есть сторонняя служба, с которой мне нужно работать, но они отказываются открыть свою систему безопасности, поэтому я могу увидеть wsdl и сделать ссылку на службу. Это общедоступная служба, поэтому я не вижу необходимости в таком уровне безопасности, но это то, что есть.

Я знаю, что это серьезный вопрос, и мне стыдно задавать его, но как мне создать эквивалентную справочную информацию о сервисе в моем клиенте, когда все, что у меня есть, - это физическая копия wsdl, которую клиент отправил мне по электронной почте? Изменяется web.config, объектный слой поверх данных SOAP и т. Д. Как и в случае с автоматизированной ссылкой на службу, я просто хочу открыть соединение со службой и начать использовать ее с определенными объектами.

Насколько я могу судить, сторонняя служба - это не WCF, а SOAP. Кстати, я использую VS 2010. Заранее спасибо, Кен


person kfoster    schedule 03.10.2012    source источник
comment
возможный дубликат Создание прокси веб-службы в Visual Studio из файла WSDL   -  person John Fouhy    schedule 30.10.2013


Ответы (2)


Это может быть самый простой способ

  • Щелкните проект правой кнопкой мыши и выберите «Добавить ссылку на службу ...»
  • В поле Адрес: введите физический путь (C: \ test \ project ....) загруженного / измененного файла wsdl.
  • Hit Go
person Ant Radha    schedule 04.10.2012
comment
Если вы используете Копировать как Путь, снимите кавычки. - person O. Jones; 25.07.2013
comment
При сохранении wsdl для передачи кому-то другому, просмотр источника wsdl из веб-службы в chrome дал мне рабочий wsdl, тогда как IE11 - нет. YMMV. - person archangel76; 23.04.2015

Есть два способа сделать это. Вы можете использовать среду IDE для создания WSDL или сделать это через командную строку.

1. Чтобы создать его через IDE:

На панели обозревателя решений щелкните правой кнопкой мыши проект, в который вы хотите добавить Службу:

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

Затем вы можете ввести путь к WSDL вашей службы и нажать go:

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

2. Чтобы создать его из командной строки:

Откройте командную строку VS 2010 (Программы -> Visual Studio 2010 -> Инструменты Visual Studio).
Затем выполните:

WSDL /verbose C:\path\to\wsdl

После этого WSDL.exe выведет файл .cs для вашего использования.

Если у вас есть другие зависимости, полученные с файлом, например xsd, добавьте их в список аргументов:

WSDL /verbose C:\path\to\wsdl C:\path\to\some\xsd C:\path\to\some\xsd

Если вам нужен вывод VB, используйте /language:VB в дополнение к /verbose.

person Lynn Crumbling    schedule 03.10.2012
comment
Я получаю сообщение «Невозможно импортировать привязку blah из пространства имен blahURL» и «Невозможно импортировать операцию SomeRequest». Элемент «xxx» отсутствует. Означает ли это, что им нужно предоставить мне еще несколько файлов поддержки, или что их безопасность настолько заблокирована, что я ничего не могу сделать? - person kfoster; 03.10.2012
comment
Похоже, что вам не хватает зависимостей. Откройте WSDL и посмотрите вверху. Если вы видите строки, в которых есть import, за которым следует schemaLocation, указывающая на путь xsd, вам также понадобятся эти файлы xsd. - person Lynn Crumbling; 03.10.2012
comment
Спасибо за ответ. У меня отличное электронное письмо с клиентом, чтобы узнать, смогу ли я получить необходимый импорт xsd. Это так неприятно, когда все сделано правильно, я просто вставляю URL-адрес в диалоговое окно ServiceReference, нажимаю кнопку и альт! Я нахожусь примерно в трех строчках кода от вызова метода службы. Весь процесс занимает около 5 минут. Но я работал с этим клиентом в течение нескольких недель и ничего не добился, потому что их специалисты по безопасности не открывают доступ к каким-либо определениям сервисов через Интернет. - person kfoster; 03.10.2012
comment
Это грубо. В настоящее время я сам жду подключения к vpn для проекта. К счастью, они заранее предоставили мне wsdl и сопроводительные xsd-документы. Значит, вы нашли этот импорт в wsdl? - person Lynn Crumbling; 03.10.2012
comment
да. Оказывается, для 4 сервисов они дали мне wsdl для 2 из них и xsd для 2 других, так что не было полного набора файлов для какой-либо из услуг. Но я наконец получил xsd и смог сгенерировать файлы .cs для двух сервисов, остальные 2, я полагаю, последуют. Спасибо. - person kfoster; 03.10.2012
comment
Не могли бы вы пояснить, как правильно установить ссылку на локальный файл XSD в schemaLocation WSDL? - person DmitryBoyko; 26.08.2016
comment
Не беспокойтесь, я нашел ответ и поместил его здесь stackoverflow.com/questions/19253402/ - person DmitryBoyko; 26.08.2016