2009-08-19 2 views
87

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

+8

Ну, я upvoted, потому что это вопрос, который я думаю, что другие пользователи здесь было бы полезно увидеть ответ. Я искал эту точную проблему, и я счастлив, что нашел ее здесь. – schizoid04

ответ

105

Я хотел бы запустить Visual Studio 2008, создать веб-проект (или консольное приложение - не имеет значения), а затем щелкнуть правой кнопкой мыши по проекту и выбрать «Добавить ссылку на службу» из контекстного меню.

Введите путь и имя файла в поле и импортируйте WSDL - это создаст простой, очень простой клиент WCF для вас. Вы должны найти класс «YourservicenameClient» в сгенерированном коде, который должен иметь методы для каждого из определенных методов в контракте WSDL.

Мгновентилятор клиента и вызов методов, которые вы хотите назвать - это все, что есть!

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

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

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

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

+0

Это прекрасно работает. Только один вопрос, если у меня есть файл wsdl на моей машине, и я добавляю ссылку на этот файл. При выполнении Url он обращается к одному веб-сервису, или мне нужно указать привязку и конечную точку? – jmayor

+1

Это зависит от вас. По умолчанию код, созданный для прокси-клиента, будет иметь URL-адрес, содержащийся внутри WSDL, - если вам нужно перейти на другой URL-адрес, вам нужно указать его самостоятельно. –

+0

Почему это так просто? Разве нет уловов? : p Спасибо! – Odys

34

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

  • Создайте или откройте проект.
  • Щелкните правой кнопкой мыши проект из браузера решений.
  • Выберите «Добавить услугу»
  • Вставьте адрес с помощью WSDL, который вы получили.
  • Нажмите OK.

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

+8

<3 Visual Studio .. Да, это действительно так просто :) – cwap

+3

У OP нет адреса, кроме файла. –

+7

введите путь/имя файла WSDL ...... –

13

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

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

/// <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-сервис потребляя код:

  1. Instantiate MyService ,
  2. установить его свойство Url
  3. Invoke Web методы
+4

Это создает «старый стиль» ASMX Webservice - те, которые устарели - сегодня следует использовать WCF –

+1

-1 для поощрения использования устаревших технологий. –

+13

+1, другие решения НЕ работали для меня. – Nuzzolilo

Смежные вопросы