Freigeben über


SoapException.Detail Eigenschaft

Definition

Ruft ein XmlNode , das die anwendungsspezifischen Fehlerinformationen details darstellt.

public:
 property System::Xml::XmlNode ^ Detail { System::Xml::XmlNode ^ get(); };
public System.Xml.XmlNode Detail { get; }
member this.Detail : System.Xml.XmlNode
Public ReadOnly Property Detail As XmlNode

Eigenschaftswert

Die anwendungsspezifischen Fehlerinformationen.

Beispiele

Im folgenden Beispiel wird ein SoapException, wobei die XML-Webdienstmethode die Detail Eigenschaft festlegt.

<%@ 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

Hinweise

Die Detail Eigenschaft kann mithilfe eines der Klassenkonstruktoren festgelegt werden, die einen Detail Wert akzeptieren.

Die Detail Eigenschaft wird verwendet, um anwendungsspezifische Fehlerdetails im Zusammenhang mit dem Body Element der SOAP-Anforderung zu liefern. Wenn ein Fehler auftritt, da die Clientanforderung aufgrund Body des Elements der SOAP-Anforderung nicht verarbeitet werden kann, muss die Detail Eigenschaft festgelegt werden. Wenn in den Headereinträgen der SOAP-Anforderung ein Fehler auftritt, müssen Sie einen SoapHeaderExceptionFehler auslösen, damit die Fehlerdetails im SOAP-Header zurückgegeben werden. Wenn der Fehler aufgrund der Verarbeitung des Body Elements nicht auftritt, darf die Detail Eigenschaft nicht festgelegt werden.

Beim Erstellen einer XmlNode Eigenschaft Detail können die Name Eigenschaften und Namespace Eigenschaften DetailElementName verwendet werden, um die Konsistenz mit der SOAP-Spezifikation sicherzustellen.

Alle unmittelbaren untergeordneten Elemente des Detailelements werden als Detaileinträge bezeichnet, und jeder Detaileintrag wird als unabhängiges Element innerhalb des Detailelements codiert.

Gilt für:

Weitere Informationen