Основные сведения об XML-веб-службах в ASP.NET

Этот раздел посвящен технологии прежних версий. Веб-службы XML и клиенты веб-служб XML должны создаваться с использованием Windows Communication Foundation.

Поскольку ASP.NET обеспечивает инфраструктуру внутренних механизмов веб-службы, разработчики могут сосредоточиться на реализации функциональных возможностей создаваемой ими веб-службы. Чтобы создать веб-службу на базе ASP.NET, необходимо создать файл с расширением .asmx, объявить в нем (и, возможно, в другом файле) веб-службу и определить ее методы. Процедуры приведены в разделе Пошаговое руководство. Создание простой XML-веб-службы с использованием ASP.NET и подробно рассмотрены в этой статье.

Объявление веб-служб

При создании веб-службы в ASP.NET необходимо поместить директиву @ WebService в верхней строке текстового файла с расширением .asmx. Наличие файла .asmx и директива @ WebService коррелятивны URL-адресу веб-службы при ее реализации. Кроме того, необходимо реализовать класс веб-службы, определяющий методы и типы данных, видимые клиентам веб-службы.

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

Применив необязательный атрибут WebService к классу, реализующему веб-службу, можно задать пространство имен XML по умолчанию для веб-службы и строку с ее описанием. Настоятельно рекомендуется изменить пространство имен по умолчанию (http://tempuri.org), прежде чем сделать веб-службу доступной для использования. Это важно, поскольку веб-служба должна отличаться от других веб-служб, которые могут непреднамеренно использовать пространство имен в качестве пространства по умолчанию (<http://tempuri.org/>).

Классы, реализующие веб-службу, созданную с помощью ASP.NET, можно (но не обязательно) унаследовать от класса WebService, чтобы получить доступ к общим объектам ASP.NET, таким как Application, Session, User и Context. Свойства Application и Session обеспечивают доступ к состоянию хранения и получения на протяжении времени существования веб-приложения либо определенного сеанса. Дополнительные сведения об управлении состоянием см. в разделе Как управлять состоянием в веб-службах, создаваемых с помощью ASP.NET. Свойство User содержит удостоверение вызывающего веб-службу (если включена проверка подлинности). По удостоверению веб-служба может определить, авторизован ли запрос. Дополнительные сведения о проверке подлинности см. в разделе Обеспечение безопасности XML-веб-служб. Свойство Context обеспечивает доступ ко всей ориентированной на протокол HTTP информации о запросе клиента веб-службы. Дополнительные сведения о свойстве Context см. в разделе Свойство WebService.Context.

Определение методов веб-службы

Методы класса, реализующего веб-службу, не получают автоматически возможность получения запросов веб-службы и отправки ответов, но такую возможность очень просто добавить в веб-службу, созданную с помощью ASP.NET. Примените атрибут WebMethod к открытым методам. Методы класса веб-службы, с которыми возможен обмен информацией через Интернет, называются методами веб-службы.

Методы веб-служб играют ключевую роль в инфраструктуре обмена сообщениями, используемой веб-службами. А именно, клиент и веб-служба обмениваются информацией с помощью сообщений — по умолчанию сообщений SOAP. Клиенты посылают запросы SOAP веб-службе, и ее метод обычно возвращает ответы SOAP. Веб-службы определяют тип принимаемых ими сообщений с помощью операций согласно определениям WSDL. Эти операции коррелятивны каждому методу веб-службы. Несмотря на то что все эти методы веб-службы определены в ASP.NET с помощью метода или класса, следует помнить, что передаваемые по сети данные должны быть сериализованы в формат XML. Поэтому важно отметить, что веб-службы — не замена модели DCOM, а инфраструктура обмена сообщениями для связи платформ на основе отраслевых стандартов.

См. также

Задачи

Практическое руководство. Создание простой XML-веб-службы с использованием ASP.NET

Справочник

WebService Class
WebServiceAttribute Class
WebMethodAttribute Class

Другие ресурсы

XML-веб-службы с использованием ASP.NET