Поделиться через


Обработка ошибок, происходящих при обработке заголовка SOAP

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

Когда веб-служба определяет ошибку, специфичную для обработки заголовка SOAP, должно выдаваться исключение SoapHeaderException. Использование этого класса исключения позволяет веб-службам обеспечивать надлежащий формат ответа. Пример вызова:

throw new SoapHeaderException("invalid user",SoapException.ClientFaultCode); 
Throw New SoapHeaderException("invalid user", SoapException.ClientFaultCode)

Если клиент создан с помощью .NET Framework, он получает исключение SoapHeaderException вместе с содержимым, включая свойство InnerException, помещенное в свойство Message. Свойство InnerException исключения SoapHeaderException, полученного клиентом, будет иметь значение null. Эта модель программирования поддерживается платформой .NET Framework, поскольку исключение передается по сети в XML-элементе <Fault> сообщения SOAP в соответствии со спецификацией протокола SOAP. Дополнительные сведения об исключениях см. в разделе Обработка и создание исключений в XML-веб-службах.

Примечание: платформа .NET Framework версии 1.0 включает свойство SoapHeaderAttribute.Required, позволяющее веб-службе требовать от клиента отправку определенного заголовка SOAP, если это свойство имеет значение true. ASP.NET указывает необходимость наличия заголовка SOAP в генерируемом документе WSDL, присваивая атрибуту wsdl:required значение "true" для элемента soap:header. Клиенты .NET Framework для веб-службы, созданной из документа WSDL, получают исключение SoapHeaderException, если не отправляют требуемый заголовок SOAP, а прочие клиенты получают ошибку SOAP. Чтобы обеспечить возможность взаимодействия с другими решениями на базе SOAP, эта функция удалена в более поздних версиях.

Свойство Required не используется в версии 1.1, а атрибут wsdl:required элемента soap:header в документе WSDL игнорируется программой Wsdl.exe. Поскольку заголовок SOAP теперь не может быть требуемым, веб-служба должна убедиться, что значение поля или свойства, представляющего заголовок SOAP, не равно null, прежде чем осуществлять доступ к нему.

См. также

Справочник

SoapHeaderException
SoapHeader
SoapHeaderAttribute
SoapUnknownHeader

Основные понятия

Обработка и создание исключений в XML-веб-службах
Создание клиентов XML-веб-службы

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

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