SoapException.Code Propriedade

Definição

Obtém o tipo de código de falha de SOAP.Gets the type of SOAP fault code.

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

Valor da propriedade

XmlQualifiedName

Um XmlQualifiedName que especifica o código de falha de SOAP ocorrido.An XmlQualifiedName that specifies the SOAP fault code that occurred.

Exemplos

O exemplo de Web Form a seguir chama o Math método de serviço Web, que gera uma exceção se uma divisão por zero ocorrer.The following Web Form example calls the Math Web Service method, which throws an exception if a division by zero occurs. Depois que a exceção é lançada, o formulário da Web captura a exceção e gera os detalhes da exceção, incluindo as Actor Code Propriedades e em um HtmlTable controle.Once the exception is thrown, the Web Form catches the exception and outputs the exception details, including the Actor and Code properties into a HtmlTable control.

<%@ Page Language="C#" %>
<html>
 <head>
 <script runat=server language="C#">
   void Page_Load(Object o, EventArgs e)
   {
     
   int UsageCount;
   // Create a new instance of the proxy class.
   MyMath.Math math = new MyMath.Math(); 
   // Make a call to the Math XML Web service, which throws an exception.
   try
       {
       math.Divide(3, 0);
       }
   catch (System.Web.Services.Protocols.SoapException error)
       {
       // Populate the table with the exception details.
       ErrorTable.Rows.Add(BuildNewRow("Fault Code Namespace", error.Code.Namespace));
       ErrorTable.Rows.Add(BuildNewRow("Fault Code Name", error.Code.Name));        
       ErrorTable.Rows.Add(BuildNewRow("SOAP Actor that threw Exception", error.Actor));        
       ErrorTable.Rows.Add(BuildNewRow("Error Message", error.Message));        
       return;
       }
   }
 
   HtmlTableRow BuildNewRow(string Cell1Text, string Cell2Text)
   {
       HtmlTableRow row = new HtmlTableRow();
       HtmlTableCell cell1 = new HtmlTableCell();
       HtmlTableCell cell2 = new HtmlTableCell();
         
       // Set the contents of the two cells.
       cell1.Controls.Add(new LiteralControl(Cell1Text));
       // Add the cells to the row.
       row.Cells.Add(cell1);
     
       cell2.Controls.Add(new LiteralControl(Cell2Text));
     
       // Add the cells to the row.
       row.Cells.Add(cell2);
       return row;
     }
 </script>
 </head>
 <body>
     <table id="ErrorTable"
        CellPadding=5 
        CellSpacing=0 
        Border="1" 
        BorderColor="black" 
        runat="server" />
 </body>
<%@ Page Language="VB"%>
<html>
 <head>
 <script runat=server language="VB">
Sub Page_Load(o As Object, e As EventArgs)    
    Dim UsageCount As Integer
    ' Create a new instance of the proxy class.
    Dim math As New MyMath.Math()
    ' Make a call to the Math XML Web service, which throws an exception.
    Try
        math.Divide(3, 0)
    Catch err As System.Web.Services.Protocols.SoapException
        ' Populate our Table with the Exception details
        ErrorTable.Rows.Add(BuildNewRow("Fault Code Namespace", err.Code.Namespace))
        ErrorTable.Rows.Add(BuildNewRow("Fault Code Name", err.Code.Name))
        ErrorTable.Rows.Add(BuildNewRow("SOAP Actor that threw Exception", err.Actor))
        ErrorTable.Rows.Add(BuildNewRow("Error Message", err.Message))
        Return
    End Try
End Sub 'Page_Load


Function BuildNewRow(Cell1Text As String, Cell2Text As String) As HtmlTableRow
    Dim row As New HtmlTableRow()
    Dim cell1 As New HtmlTableCell()
    Dim cell2 As New HtmlTableCell()
    
    ' Set the contents of the two cells.
    cell1.Controls.Add(New LiteralControl(Cell1Text))
    ' Add the cells to the row.
    row.Cells.Add(cell1)
    
    cell2.Controls.Add(New LiteralControl(Cell2Text))
    
    ' Add the cells to the row.
    row.Cells.Add(cell2)
    Return row
End Function 'BuildNewRow
 </script>
 </head>
 <body>
     <table id="ErrorTable"
        CellPadding=5 
        CellSpacing=0 
        Border="1" 
        BorderColor="black" 
        runat="server" />
 </body>

Para que o formulário da Web anterior use o seguinte Math exemplo de serviço Web XML, um namespace de MyMath foi especificado durante a criação da classe de proxy.In order for the preceding Web Form to use the following Math XML Web service example, a namespace of MyMath was specified during the creation of the proxy class.

<%@ WebService Language="C#" Class="Math"%>
 using System.Web.Services;
 using System;
 public class Math : WebService {
     [WebMethod]
     public float Divide(int dividend, int divisor) {
         if (divisor == 0)
             throw new DivideByZeroException();
 
         return dividend/divisor;
     }
  }
<%@ WebService Language="VB" Class="Math"%>
Imports System.Web.Services
Imports System

Public Class Math
    Inherits WebService

    <WebMethod()> _
    Public Function Divide(dividend As Integer, divisor As Integer) As Single
        If divisor = 0 Then
            Throw New DivideByZeroException()
        End If 
        Return Convert.ToSingle(dividend / divisor)
    End Function 'Divide
End Class  'Math

Comentários

A Code propriedade só pode ser definida ao criar uma nova instância da SoapException classe.The Code property can only be set when creating a new instance of the SoapException class.

A SoapException classe é para uso por clientes de serviço Web XML que chamam métodos de serviço Web XML sobre SOAP.The SoapException class is for use by XML Web service clients that call XML Web service methods over SOAP. ASP.NET manipula se o cliente que chama usa SOAP.ASP.NET handles whether the client that calls uses SOAP. É quando ocorre uma exceção em um serviço Web XML.This is when an exception occurs in an XML Web service. Se o cliente usar SOAP, ASP.NET encapsulará a exceção específica em um SoapException e definirá Actor as Code Propriedades e.If the client uses SOAP, ASP.NET wraps the specific exception into a SoapException and sets the Actor and Code properties.

O conjunto de códigos disponíveis, conhecidos como códigos de falha SOAP para o protocolo SOAP versão 1,1, são os seguintes:The set of available codes, known as SOAP Fault Codes for SOAP protocol version 1.1, are the following:

ItemItem DescriçãoDescription
VersionMismatchFaultCode Foi encontrado um namespace inválido para um envelope SOAP.An invalid namespace for a SOAP envelope was found.
MustUnderstandFaultCode Nem todos os elementos SOAP exigem processamento.Not all SOAP elements require processing. No entanto, se um elemento SOAP for marcado com o MustUnderstand atributo com um valor de 1, ele será necessário.However, if a SOAP element is marked with the MustUnderstand attribute with a value of 1, it is required. Falha ao processar o elemento gera essa exceção.Failure to process the element generates this exception.
ClientFaultCode Uma chamada de cliente não foi formatada corretamente ou não continha as informações apropriadas.A client call was not formatted correctly or did not contain the appropriate information. Por exemplo, a chamada do cliente pode não ter a autenticação ou as informações de pagamento adequadas.For example, the client call might not have the proper authentication or payment information. Em geral, é uma indicação de que a mensagem deve ser alterada antes de ser reenviada.It is generally an indication that the message must be changed before it is resent.
ServerFaultCode Ocorreu um erro durante o processamento de uma chamada de cliente no servidor, no entanto, o problema não se deve ao conteúdo da mensagem.An error occurred during the processing of a client call on the server, however, the problem is not due to the message contents. Por exemplo, um servidor upstream pode não responder a uma solicitação devido a problemas de rede.For example, an upstream server might not respond to a request due to network problems. Normalmente, com esse tipo de exceção, a chamada do cliente pode ter sucesso mais tarde.Typically, with this type of exception, the client call might succeed later. Se um serviço Web XML lançar uma exceção, diferente de SoapException e as chamadas de cliente usando SOAP, ASP.net converterá a exceção em um SoapException , definindo a Code propriedade como ServerFaultCode e a lançará de volta para o cliente.If an XML Web service throws an exception, other than SoapException and the client calls using SOAP, ASP.NET converts the exception to a SoapException, setting the Code property to ServerFaultCode and throws it back to the client.

Aplica-se a

Confira também