SoapException.Detail Propriedade

Definição

Obtém um XmlNode que representa os detalhes de informações de erro específicas do aplicativo.Gets an XmlNode that represents the application-specific error information details.

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

Valor da propriedade

XmlNode

As informações de erro específicas do aplicativo.The application-specific error information.

Exemplos

O exemplo a seguir gera um SoapException , onde o método de serviço Web XML define a Detail propriedade.The following example throws a SoapException, where the XML Web service method sets the Detail property.

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

Comentários

A Detail propriedade pode ser definida usando um dos construtores de classe que aceita um Detail valor.The Detail property can be set using one of the class constructors that accepts a Detail value.

A Detail propriedade é usada para fornecer detalhes de erro específicos do aplicativo relacionados ao Body elemento da solicitação SOAP.The Detail property is used to supply application-specific error details related to the Body element of the SOAP request. De acordo com a especificação SOAP, se ocorrer um erro porque a solicitação do cliente não pode ser processada devido ao Body elemento da solicitação SOAP, a Detail propriedade deve ser definida.According to the SOAP specification, if an error occurs because the client request cannot be processed due to the Body element of the SOAP request, the Detail property must be set. Se ocorrer um erro nas entradas de cabeçalho da solicitação SOAP, você deverá lançar um SoapHeaderException , para que os detalhes do erro sejam retornados no cabeçalho SOAP.If an error occurs in the header entries of the SOAP request, you must throw a SoapHeaderException, so that the error details are returned in the SOAP header. Se o erro não ocorrer devido ao processamento do Body elemento, a Detail propriedade não deverá ser definida.If the error does not occur, due to the processing of the Body element, then the Detail property must not be set.

Na criação de uma XmlNode para a Detail propriedade, Name as Namespace Propriedades e de DetailElementName podem ser usadas para garantir a consistência com a especificação SOAP.In building an XmlNode for the Detail property, the Name and Namespace properties of DetailElementName can be used to ensure consistency with the SOAP specification.

Todos os elementos filho imediatos do elemento Detail são chamados de entradas de detalhes e cada entrada de detalhe é codificada como um elemento independente dentro do elemento detail.All immediate child elements of the detail element are called detail entries and each detail entry is encoded as an independent element within the detail element.

Aplica-se a

Confira também