Partager via


SoapException.Code Propriété

Définition

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.

S’applique à

Voir aussi