SoapException.Code Propiedad

Definición

Obtiene el tipo de código de error de SOAP.

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 de propiedad

XmlQualifiedName que especifica el código del error de SOAP que se ha producido.

Ejemplos

En el siguiente ejemplo de formulario web se llama al Math método servicio web, que produce una excepción si se produce una división por cero. Una vez iniciada la excepción, el formulario web detecta la excepción y genera los detalles de la excepción, incluidas las Actor propiedades y Code en un 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 el formulario web anterior use el siguiente Math ejemplo de servicio web XML, se especificó un espacio de nombres de MyMath durante la creación de la clase proxy.

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

Comentarios

La Code propiedad solo se puede establecer al crear una nueva instancia de la SoapException clase .

La SoapException clase es para que la usen los clientes de servicios web XML que llaman a métodos de servicio web XML a través de SOAP. ASP.NET controla si el cliente que llama usa SOAP. Esto es cuando se produce una excepción en un servicio web XML. Si el cliente usa SOAP, ASP.NET ajusta la excepción específica en y SoapException establece las Actor propiedades y Code .

El conjunto de códigos disponibles, conocidos como códigos de error SOAP para el protocolo SOAP versión 1.1, son los siguientes:

Elemento Descripción
VersionMismatchFaultCode Se encontró un espacio de nombres no válido para un sobre SOAP.
MustUnderstandFaultCode No todos los elementos SOAP requieren procesamiento. Sin embargo, si un elemento SOAP está marcado con el MustUnderstand atributo con un valor de 1, es necesario. Si no se procesa el elemento, se genera esta excepción.
ClientFaultCode Una llamada de cliente no tenía el formato correcto o no contenía la información adecuada. Por ejemplo, la llamada de cliente podría no tener la información de autenticación o pago adecuada. Por lo general, es una indicación de que el mensaje debe cambiarse antes de que se vuelva a enviar.
ServerFaultCode Error durante el procesamiento de una llamada de cliente en el servidor; sin embargo, el problema no se debe al contenido del mensaje. Por ejemplo, un servidor ascendente podría no responder a una solicitud debido a problemas de red. Normalmente, con este tipo de excepción, la llamada de cliente podría realizarse correctamente más adelante. Si un servicio web XML produce una excepción, excepto SoapException y el cliente llama a mediante SOAP, ASP.NET convierte la excepción en , SoapExceptionestableciendo la Code propiedad ServerFaultCode en y la devuelve al cliente.

Se aplica a

Consulte también