SoapException.Code Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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. |