Как использовать WSDL

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

Ответ 1

Я бы запустил Visual Studio, создаю веб-проект (или консольное приложение - не имеет значения).

Для стандарта.Net:

  1. Я бы щелкнул правой кнопкой мыши по проекту и выберите "Добавить ссылку на службу" из контекстного меню " Добавить".
  2. Я бы нажал кнопку "Дополнительно", затем нажмите "Добавить ссылку на службу".
  3. Я бы получил полный путь к файлу wsdl и вставить в адресную строку. Затем запустите стрелку (нажмите кнопку).
  4. Если есть ошибка при попытке загрузить файл, тогда должен быть сломанный и неразрешенный URL-адрес, который должен решить файл, как показано ниже: enter image description here Обратитесь к этому ответу за информацией о том, как исправить: fooobar.com/questions/9784708/...

Если нет ошибки, вы должны просто установить NameSpace, которое хотите использовать для доступа к службе, и оно будет сгенерировано для вас.

Для.Net Core

  1. Я бы щелкнул правой кнопкой мыши по проекту и выберите Connected Service из контекстного меню Добавить.
  2. Я бы выбрал из списка список поставщиков WCF веб-службы Microsoft WCF.
  3. Я бы сразу нажал кнопку просмотра и сразу же выделил файл wsdl, задал пространство имен, и мне хорошо идти. Если вы столкнулись с какой-либо ошибкой, обратитесь к исправлению ошибки.

Любой из вышеперечисленных методов создаст простой, очень простой клиент WCF для вас. Вы должны найти класс "YourservicenameClient" в сгенерированном коде.

Для справочной цели сгенерированный файл cs можно найти в вашем Obj/debug (или release)/XsdGeneratedCode, и вы все равно можете найти DLL в папке TempPE.

Созданный Сервис должен иметь методы для каждого из определенных методов в контракте WSDL.

Выполните активацию клиента и вызовите методы, которые вы хотите назвать, - все, что есть!

YourServiceClient client = new YourServiceClient();
client.SayHello("World!");

Если вам нужно указать удаленный URL (не используя тот, который был создан по умолчанию), вы можете легко сделать это в конструкторе прокси-клиента:

YourServiceClient client = new YourServiceClient("configName", "remoteURL");

где configName - это имя используемой конечной точки (вы будете использовать все настройки, кроме URL-адреса), а remoteURL - это строка, представляющая URL-адрес для подключения (а не тот, который содержится в конфиге).

Ответ 2

В визуальной студии.

  • Создайте или откройте проект.
  • Щелкните правой кнопкой мыши проект из проводника решений.
  • Выберите "Добавить услугу"
  • Вставьте адрес с полученным WSDL.
  • Нажмите "ОК".

Если ошибок нет, вы должны иметь возможность видеть ссылку на службу в обозревателе объектов и всех связанных методах.

Ответ 3

Используйте утилиту WSDL.EXE для создания прокси-сервера веб-службы из WSDL.

Вы получите длинный исходный файл С#, содержащий класс, который выглядит следующим образом:

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="MyService", Namespace="http://myservice.com/myservice")]
public partial class MyService : System.Web.Services.Protocols.SoapHttpClientProtocol {
    ...
}

В вашей клиентской части код, потребляющий Web-сервис:

  • создать экземпляр MyService.
  • установить его свойство Url
  • вызывать веб-методы

Ответ 4

Если вы хотите добавить ссылку wsdl в проекте .Net Core, нет опции "Добавить веб-ссылку".

Чтобы добавить ссылку на wsdl, перейдите в Обозреватель решений, щелкните правой кнопкой мыши элемент проекта "Ссылки", а затем выберите " Добавить подключенную службу".

enter image description here

Затем нажмите "Справочная служба Microsoft WCF Web Service":

enter image description here

Введите путь к файлу в текстовое поле URI и импортируйте WSDL:

enter image description here

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

YourServiceClient client = new YourServiceClient();
client.DoSomething();