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


SoapException Класс

Определение

Представляет исключение, которое выдается, когда метод веб-службы XML вызывается посредством SOAP и происходит исключение.

public ref class SoapException : SystemException
public class SoapException : SystemException
[System.Serializable]
public class SoapException : SystemException
type SoapException = class
    inherit SystemException
[<System.Serializable>]
type SoapException = class
    inherit SystemException
Public Class SoapException
Inherits SystemException
Наследование
Производный
Атрибуты

Примеры

В следующем примере возникает исключение , SoapException в котором метод веб-службы XML задает Detail свойство .

<%@ WebService Language="C#" class="ThrowSoapException"%>

using System;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Serialization;
using System.Xml;

public class ThrowSoapException : WebService 
{
//    This XML Web service method generates a SOAP Client Fault code 
    [WebMethod]
    public void myThrow(){

        // Build the detail element of the SOAP fault.
        System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
        System.Xml.XmlNode node = doc.CreateNode(XmlNodeType.Element, SoapException.DetailElementName.Name, SoapException.DetailElementName.Namespace);


        // Build specific details for the SoapException.
        // Add first child of detail XML element.
        System.Xml.XmlNode details = doc.CreateNode(XmlNodeType.Element, "mySpecialInfo1", "http://tempuri.org/");
        System.Xml.XmlNode detailsChild = doc.CreateNode(XmlNodeType.Element, "childOfSpecialInfo", "http://tempuri.org/");
        details.AppendChild(detailsChild);

            
        // Add second child of detail XML element with an attribute.
        System.Xml.XmlNode details2 = doc.CreateNode(XmlNodeType.Element, "mySpecialInfo2", "http://tempuri.org/");
        XmlAttribute attr = doc.CreateAttribute("t", "attrName", "http://tempuri.org/");
        attr.Value = "attrValue";
        details2.Attributes.Append(attr);

        // Append the two child elements to the detail node.
        node.AppendChild(details);
        node.AppendChild(details2);

            
        //Throw the exception.    
        SoapException se = new SoapException("Fault occurred", SoapException.ClientFaultCode,Context.Request.Url.AbsoluteUri,node);

        throw se;
        return;    }
}
<%@ WebService Language="VB" class="ThrowSoapException"%>

Imports System
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml.Serialization
Imports System.Xml

Public Class ThrowSoapException
    Inherits WebService
    
    ' This XML Web service method generates a SOAP Client Fault code 
    <WebMethod()> _
    Public Sub myThrow()
        
        ' Build the detail element of the SOAP fault.
        Dim doc As New System.Xml.XmlDocument()
        Dim node As System.Xml.XmlNode = doc.CreateNode(XmlNodeType.Element, _
            SoapException.DetailElementName.Name, _
            SoapException.DetailElementName.Namespace)
 
        ' Build specific details for the SoapException.
        ' Add first child of detail XML element.
        Dim details As System.Xml.XmlNode = doc.CreateNode(XmlNodeType.Element, _
            "mySpecialInfo1", "http://tempuri.org/")

        ' Add second child of detail XML element with an attribute.
        Dim details2 As System.Xml.XmlNode = doc.CreateNode(XmlNodeType.Element, _
            "mySpecialInfo2", "http://tempuri.org/")
        Dim attr As XmlAttribute = doc.CreateAttribute("t", "attrName", _
            "http://tempuri.org/")
        attr.Value = "attrValue"
        details2.Attributes.Append(attr)

        ' Append the two child elements to the detail node.
        node.AppendChild(details)
        node.AppendChild(details2)
                
        'Throw the exception    
        Dim se As New SoapException("Fault occurred", SoapException.ClientFaultCode, _
                                    Context.Request.Url.AbsoluteUri, node)
        Throw se
        Return
    End Sub
End Class

Комментарии

Может SoapException быть вызван средой CLR или методом веб-службы XML. Среда CLR может вызвать исключение , SoapException если ответ на запрос отформатирован неправильно. Методы веб-службы XML могут создавать , SoapException просто создавая исключение в методе веб-службы XML. Если клиент обращается к методу по протоколу SOAP, исключение перехватывается на сервере и упаковывается в новый SoapExceptionобъект . Выброшенный SoapException объект имеет следующие значения свойств:

Свойство Значение
Message Свойство Message исходного исключения.
Code ServerFaultCode.
Actor URL-адрес метода веб-службы XML.
Detail null, но в элементе fault присутствует пустой элемент detail.

Метод веб-службы XML может вызывать исключение , SoapException когда клиенты вызывают с помощью ПРОТОКОЛА SOAP. Если веб-служба XML выдает SoapException, другие сведения можно добавить с помощью Actorсвойств и , CodeDetail которые не могут быть заданы методом веб-службы XML, если создается исключение другого типа.

Конструкторы

SoapException()

Инициализирует новый экземпляр класса SoapException.

SoapException(SerializationInfo, StreamingContext)

Инициализирует новый экземпляр класса SoapException с сериализованными данными.

SoapException(String, XmlQualifiedName)

Инициализирует новый экземпляр класса SoapException с указанным сообщением об исключении и заданным кодом исключения.

SoapException(String, XmlQualifiedName, Exception)

Инициализирует новый экземпляр класса SoapException с указанным сообщением об исключении, кодом исключения и ссылкой на основную причину данного исключения.

SoapException(String, XmlQualifiedName, SoapFaultSubCode)

Инициализирует новый экземпляр класса SoapException с указанным сообщением об исключении, кодом исключения и дополнительным кодом.

SoapException(String, XmlQualifiedName, String)

Инициализирует новый экземпляр класса SoapException с указанным сообщением об исключении, кодом исключения и URI-кодом, идентифицирующим фрагмент программного кода, вызвавшего исключение.

SoapException(String, XmlQualifiedName, String, Exception)

Инициализирует новый экземпляр класса SoapException с указанным сообщением об исключении, кодом исключения, URI-кодом, идентифицирующим программный код, вызвавший исключение и ссылку на основную причину исключения.

SoapException(String, XmlQualifiedName, String, String, String, XmlNode, SoapFaultSubCode, Exception)

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

SoapException(String, XmlQualifiedName, String, String, XmlNode, SoapFaultSubCode, Exception)

Инициализирует новый экземпляр класса SoapException с заданным сообщением об исключении, кодом исключения, URI, определяющим часть кода, вызвавшую исключение, сведениями об исключении, относящимися к конкретному приложению, и ссылкой на первопричину исключения.

SoapException(String, XmlQualifiedName, String, XmlNode)

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

SoapException(String, XmlQualifiedName, String, XmlNode, Exception)

Инициализирует новый экземпляр класса SoapException с заданным сообщением об исключении, кодом исключения, URI, определяющим часть кода, вызвавшую исключение, сведениями об исключении, относящимися к конкретному приложению, и ссылкой на первопричину исключения.

Поля

ClientFaultCode

Указывает код ошибки SOAP, представляющий клиентский вызов, который неправильно отформатирован или не содержит необходимые сведения.

DetailElementName

Получает объект XmlQualifiedName, представляющий элемент Detail кода ошибки SOAP.

MustUnderstandFaultCode

Код ошибки SOAP, представляющий элемент SOAP, помеченный атрибутом MustUnderstand, не был обработан.

ServerFaultCode

Указывает, что код ошибки SOAP, представляющий ошибку, происшедшую во время обработки клиентского вызова на сервере, где случилась проблема, не связан с содержимым сообщения.

VersionMismatchFaultCode

Во время обработки сообщения SOAP обнаружен код ошибки SOAP, представляющий недопустимое пространство имен для конверта SOAP.

Свойства

Actor

Получает фрагмент кода, вызвавшего исключение.

Code

Получает тип кода ошибки SOAP.

Data

Возвращает коллекцию пар «ключ-значение», предоставляющую дополнительные сведения об исключении.

(Унаследовано от Exception)
Detail

Получает объект XmlNode, представляющий характерную для приложения информацию об ошибке.

HelpLink

Получает или задает ссылку на файл справки, связанный с этим исключением.

(Унаследовано от Exception)
HResult

Возвращает или задает HRESULT — кодированное числовое значение, присвоенное определенному исключению.

(Унаследовано от Exception)
InnerException

Возвращает экземпляр класса Exception, который вызвал текущее исключение.

(Унаследовано от Exception)
Lang

Получает естественный язык, связанный с исключением.

Message

Возвращает сообщение, описывающее текущее исключение.

(Унаследовано от Exception)
Node

Получает URI-код, представляющий фрагмент программного кода, вызвавшего исключение.

Role

Получает URI-код, представляющий в веб-службе XML функцию обработки сообщения SOAP.

Source

Возвращает или задает имя приложения или объекта, вызывавшего ошибку.

(Унаследовано от Exception)
StackTrace

Получает строковое представление непосредственных кадров в стеке вызова.

(Унаследовано от Exception)
SubCode

Получает необязательные данные об ошибке, содержащиеся в XML-элементе subcode ошибки SOAP.

TargetSite

Возвращает метод, создавший текущее исключение.

(Унаследовано от Exception)

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetBaseException()

При переопределении в производном классе возвращает исключение Exception, которое является первопричиной одного или нескольких последующих исключений.

(Унаследовано от Exception)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)

Заполняет объект SerializationInfo сведениями об исключении.

GetObjectData(SerializationInfo, StreamingContext)
Устаревшие..

При переопределении в производном классе задает объект SerializationInfo со сведениями об исключении.

(Унаследовано от Exception)
GetType()

Возвращает тип среды выполнения текущего экземпляра.

(Унаследовано от Exception)
IsClientFaultCode(XmlQualifiedName)

Возвращает значение, которое указывает, эквивалентен ли код ошибки SOAP коду ошибки SOAP Client независимо от используемой версии протокола SOAP.

IsMustUnderstandFaultCode(XmlQualifiedName)

Возвращает значение, указывающее, эквивалентен ли код ошибки SOAP коду MustUnderstand независимо от используемой версии протокола SOAP.

IsServerFaultCode(XmlQualifiedName)

Возвращает значение, которое указывает, эквивалентен ли код ошибки SOAP коду ошибки SOAP Server независимо от используемой версии протокола SOAP.

IsVersionMismatchFaultCode(XmlQualifiedName)

Возвращает значение, которое указывает, эквивалентен ли код ошибки SOAP коду ошибки SOAP VersionMismatch независимо от используемой версии протокола SOAP.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Создает и возвращает строковое представление текущего исключения.

(Унаследовано от Exception)

События

SerializeObjectState
Устаревшие..

Возникает, когда исключение сериализовано для создания объекта состояния исключения, содержащего сериализованные данные об исключении.

(Унаследовано от Exception)

Применяется к