SoapException.Code Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient le type du code d'erreur 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
Valeur de propriété
XmlQualifiedName spécifiant le code de l'erreur SOAP qui s'est produite.
Exemples
L’exemple De formulaire web suivant appelle la Math
méthode de service web, qui lève une exception si une division par zéro se produit. Une fois l’exception levée, le formulaire web intercepte l’exception et génère les détails de l’exception, y compris les Actor propriétés et Code dans un HtmlTable contrôle.
<%@ 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>
Pour que le formulaire web précédent utilise l’exemple de service Web XML suivant Math
, un espace de noms de MyMath
a été spécifié lors de la création de la classe 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
Remarques
La Code propriété ne peut être définie que lors de la création d’un instance de la SoapException classe .
La SoapException classe est destinée aux clients de service Web XML qui appellent des méthodes de service Web XML via SOAP. ASP.NET gère si le client qui appelle utilise SOAP. C’est le cas lorsqu’une exception se produit dans un service Web XML. Si le client utilise SOAP, ASP.NET encapsule l’exception spécifique dans un SoapException et définit les Actor propriétés et Code .
L’ensemble des codes disponibles, appelé Codes d’erreur SOAP pour le protocole SOAP version 1.1, est le suivant :
Élément | Description |
---|---|
VersionMismatchFaultCode | Un espace de noms non valide pour une enveloppe SOAP a été trouvé. |
MustUnderstandFaultCode | Tous les éléments SOAP ne nécessitent pas de traitement. Toutefois, si un élément SOAP est marqué avec l’attribut MustUnderstand avec la valeur 1, il est obligatoire. L’échec du traitement de l’élément génère cette exception. |
ClientFaultCode | Un appel client n’a pas été correctement mis en forme ou ne contenait pas les informations appropriées. Par exemple, l’appel client peut ne pas avoir les informations d’authentification ou de paiement appropriées. Il s’agit généralement d’une indication que le message doit être modifié avant qu’il ne soit renvoyé. |
ServerFaultCode | Une erreur s’est produite lors du traitement d’un appel client sur le serveur, mais le problème n’est pas dû au contenu du message. Par exemple, un serveur amont peut ne pas répondre à une demande en raison de problèmes réseau. En règle générale, avec ce type d’exception, l’appel client peut réussir ultérieurement. Si un service Web XML lève une exception, autre que et que SoapException le client appelle à l’aide de SOAP, ASP.NET convertit l’exception en , SoapExceptionaffectant à ServerFaultCode la Code propriété la valeur et la renvoie au client. |