Создание прокси-сервера веб-службы в Visual Studio из файла WSDL



мое приложение должно поговорить с веб-службой, которая не имеет онлайн-определения WSDL. Однако разработчики предоставили мне файл WSDL.



с помощью общедоступного WSDL Visual Studio может генерировать этот код для меня с помощью мастера ссылок на службы. Но он, похоже, не работает без публичного WSDL.



Как создать код для разговора с этой веб-службой с помощью этого файла WSDL?

722   7  

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-адрес:

file://your_path/your_file.wsdl

Так как истинный URL привязки для веб-службы находится в файле, вы можете сделать эти простые шаги с вашего локального компьютера:

1) сохранить файл на локальном компьютере, например:

C:\Documents and Settings\[user]\Desktop\Webservice1.asmx

2) в Visual Studio щелкните правой кнопкой мыши на вашем проекте > выберите Добавить веб-ссылку, откроется диалоговое окно.

3) в поле URL скопируйте расположение локального файла выше C:\Documents и настройки[пользователь]\Desktop\Webservice1.asmx, Нажмите кнопку Далее

4) Теперь вы увидите функции, выберите свое имя для ссылки, Нажмите кнопку Добавить ссылку

5) Вы молодец! вы можете начать использовать его в качестве пространства имен в своем приложении не волнуйтесь, что вы использовали локальный файл, потому что в любом случае истинный URL-адрес службы находится в файле в разделе привязки

Comments

    Ничего не найдено.