Создайте веб-сервис ASMX из файла WSDL - PullRequest
57 голосов
/ 14 февраля 2009

У меня есть файл WSDL, и я пытаюсь создать веб-службу, соответствующую WSDL.

Я создал клиентов, использующих файлы WSDL, которые используют существующий сервис, но я никогда не создавал веб-сервис, который должен был следовать определенному WSDL.

Я дошел до использования:

wsdl.exe mywsdl.wsdl /l:VB /serverInterface

Теперь у меня есть файл .vb, сгенерированный из этого WSDL. Однако я не уверен, что я должен делать с этим файлом VB. Похоже, там есть открытый интерфейс, но нет класса, который реализует интерфейс. Он также имеет несколько частичных классов для типов в WSDL.

Я ожидал, что будет какая-то заглушка, в которую я вставлю код для завершения вызовов службы. Раньше я только создавал простые веб-сервисы, и ни один из них не использовал общедоступные интерфейсы, поэтому я не знаю, что здесь происходит.

На данный момент я не уверен, как использовать созданный файл .vb и заставить его работать с файлом .asmx и какое дополнительное кодирование необходимо для завершения интерфейса.

Ответы [ 2 ]

34 голосов
/ 14 февраля 2009

Если вы уже создали интерфейсы, вам нужно реализовать эти интерфейсы.
Просто создайте новый веб-сервис и добавьте созданный вами интерфейс, чтобы он наследовал этот интерфейс. Visual Studio может автоматически генерировать заглушки для каждого метода в интерфейсе. Пометьте их атрибутом WebMethod и добавьте код, который будет возвращать некоторые данные / результаты теста.

Если у вас есть inteface (с некоторыми автоматически сгенерированными атрибутами:


public interface IRealWebService
{
    string GetName();

}

Вы должны сделать новый сервис:


public class WebTestService : System.Web.Services.WebService, IRealWebService
{

    #region IRealWebService Members

    [WebMethod]
    public string GetName()
    {
        return "It Works !!!!";
    }
    #endregion
}
4 голосов
/ 14 февраля 2009

Все, что вам нужно сделать, это создать класс, который наследует от интерфейса, сгенерированного WSDL.EXE, и затем реализовать методы из интерфейса.

...