Создание прокси-сервера веб-службы в Visual Studio из файла WSDL
мое приложение должно поговорить с веб-службой, которая не имеет онлайн-определения WSDL. Однако разработчики предоставили мне файл WSDL.
с помощью общедоступного WSDL Visual Studio может генерировать этот код для меня с помощью мастера ссылок на службы. Но он, похоже, не работает без публичного WSDL.
Как создать код для разговора с этой веб-службой с помощью этого файла WSDL?
7 ответов:
попробуйте использовать WSDL.exe а затем включая сгенерированный файл (.CS) в ваш проект.
Запустите командную строку Visual Studio (в разделе visual studio / tools в меню Пуск) и введите
>wsdl.exe [path To Your WSDL File]это выплюнет файл, который вы копируете/перемещаете и включаете в свой проект. Этот файл содержит класс, который является прокси-сервером для вашего сервиса, запускает экземпляр этого класса, и у него будет свойство URL, которое вы можете установить на лету, и кучу методов это вы можете назвать. Он также будет генерировать классы для всех / любых сложных объектов, передаваемых через интерфейс службы.
с помощью WSDL.exe не работал для меня (дал мне ошибку об отсутствующем типе), но я смог щелкнуть правой кнопкой мыши на своем проекте в VS и выбрать "Добавить ссылку на службу."Я ввел путь к файлу wsdl в поле адреса и нажал "Go."Это, казалось, было в состоянии найти все правильные типы и добавил классы непосредственно к моему проекту.
на заметку: если у вас есть все из файлов локально (не только WSDL-файл, но и xsd-файлы) вы можете вызвать wsdl.exe таким образом:
wsdl.exe [path to your wsdl file] [paths to xsd files imported by wsdl]таким образом wsdl.exe может разрешить все зависимости локально и правильно генерирует прокси-класс.
возможно, это сэкономит кому - то некоторое время-он решает ошибку "отсутствующего типа", когда служба недоступна в интернете.
попробовать WSDL to Proxy class tool поставляется с пакетом SDK .NET Framework. Я никогда не использовал его раньше, но очень похоже на то, что вам нужно.
здесь Microsoft Doc для создания
WCFпрокси из командной строки .вы можете найти свою локальную копию
wsdl.exeв месте, похожем на это:C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools(здесь)в конце
Commandдолжно выглядеть примерно так:"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\wsdl.exe" /language:CS /n:"My.Namespace" https://www.example.com/service/wsdl
Так как истинный URL привязки для веб-службы находится в файле, вы можете сделать эти простые шаги с вашего локального компьютера:
1) сохранить файл на локальном компьютере, например:
C:\Documents and Settings\[user]\Desktop\Webservice1.asmx2) в Visual Studio щелкните правой кнопкой мыши на вашем проекте > выберите Добавить веб-ссылку, откроется диалоговое окно.
3) в поле URL скопируйте расположение локального файла выше C:\Documents и настройки[пользователь]\Desktop\Webservice1.asmx, Нажмите кнопку Далее
4) Теперь вы увидите функции, выберите свое имя для ссылки, Нажмите кнопку Добавить ссылку
5) Вы молодец! вы можете начать использовать его в качестве пространства имен в своем приложении не волнуйтесь, что вы использовали локальный файл, потому что в любом случае истинный URL-адрес службы находится в файле в разделе привязки
Comments