Мое приложение должно взаимодействовать с веб-службой, не имеющей определения WSDL в Интернете. Однако разработчики предоставили мне файл WSDL.
С общедоступным WSDL Visual Studio может сгенерировать для меня этот код с помощью мастера Service Reference. Но, похоже, это не работает без общедоступного WSDL.
Как сгенерировать код для разговора с этой веб-службой с помощью этого файла WSDL?
Использование WSDL.exe у меня не сработало (дало мне сообщение об отсутствии типа), но я смог щелкнуть правой кнопкой мыши свой проект в VS и выбрать «Добавить ссылку на службу». Я ввел путь к файлу wsdl в поле «Адрес» и нажал «Перейти». Казалось, что он смог найти все подходящие типы и добавил классы прямо в мой проект.
источник
Кстати, если у вас есть все файлы локально (не только файл wsdl, но и файлы xsd), вы можете вызвать wsdl.exe таким образом:
Таким образом, wsdl.exe может разрешить все зависимости локально и правильно сгенерировать прокси-класс.
Может быть, это кому-то сэкономит время - решит ошибку «отсутствует тип», когда услуга недоступна онлайн.
источник
Есть Microsoft Doc для создания вашего
WCF
прокси из командной строки.Вы можете найти свою локальную копию
wsdl.exe
в подобном месте:C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
( Подробнее здесь )В итоге вы
Command
должны выглядеть примерно так:источник
Попробуйте инструмент класса WSDL To Proxy, поставляемый с .NET Framework SDK. Я никогда не использовал его раньше, но он определенно выглядит как то, что вам нужно.
источник
сохраните файл на диске, а затем используйте следующий URL-адрес:
источник
Поскольку истинный URL-адрес привязки для веб-службы находится в файле, вы можете выполнить следующие простые шаги со своего локального компьютера:
1) Сохраните файл на локальном компьютере, например:
2) В Visual Studio щелкните правой кнопкой мыши свой проект> выберите «Добавить веб-ссылку», откроется диалоговое окно.
3) В поле URL-адреса скопируйте расположение локального файла выше C: \ Documents and Settings [пользователь] \ Desktop \ Webservice1.asmx, нажмите «Далее».
4) Теперь вы увидите, как появляются функции, выберите свое имя для ссылки, нажмите "Добавить ссылку".
5) Готово! вы можете начать использовать его в качестве пространства имен в своем приложении, не беспокойтесь о том, что вы использовали локальный файл, потому что в любом случае истинный URL-адрес службы находится в файле в разделе привязки
источник