Создание веб-службы ASMX из файла WSDL

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

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

Я дошел до того, что использовал:

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

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

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

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

Ответ 1

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

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


public interface IRealWebService
{
    string GetName();

}

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


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

    #region IRealWebService Members

    [WebMethod]
    public string GetName()
    {
        return "It Works !!!!";
    }
    #endregion
}

Ответ 2

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