Freigeben über


SoapException.Code Eigenschaft

Definition

Ruft den Typ des SOAP-Fehlercodes ab.

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

Eigenschaftswert

Ein XmlQualifiedName Wert, der den aufgetretenen SOAP-Fehlercode angibt.

Beispiele

Im folgenden Webformularbeispiel wird die Math Webdienstmethode aufgerufen, die eine Ausnahme auslöst, wenn eine Division um Null auftritt. Sobald die Ausnahme ausgelöst wurde, fängt das Webformular die Ausnahme ab und gibt die Ausnahmedetails aus, einschließlich der und Code der Actor Eigenschaften in einem HtmlTable Steuerelement.

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

Damit das vorangehende Webformular das folgende Math XML-Webdienstbeispiel verwenden kann, wurde während der Erstellung der Proxyklasse ein Namespace MyMath angegeben.

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

Hinweise

Die Code Eigenschaft kann nur beim Erstellen einer neuen Instanz der SoapException Klasse festgelegt werden.

Die SoapException Klasse wird von XML-Webdienstclients verwendet, die XML-Webdienstmethoden über SOAP aufrufen. ASP.NET behandelt, ob der Client, der SOAP aufruft, SOAP verwendet. Dies ist der Fall, wenn eine Ausnahme in einem XML-Webdienst auftritt. Wenn der Client SOAP verwendet, schließt ASP.NET die spezifische Ausnahme in eine SoapException und legt die Actor Eigenschaften fest Code .

Die verfügbaren Codes, die als SOAP-Fehlercodes für SOAP-Protokollversion 1.1 bezeichnet werden, sind die folgenden:

Element Beschreibung
VersionMismatchFaultCode Es wurde ein ungültiger Namespace für einen SOAP-Umschlag gefunden.
MustUnderstandFaultCode Nicht alle SOAP-Elemente erfordern eine Verarbeitung. Wenn jedoch ein SOAP-Element mit dem MustUnderstand Attribut mit dem Wert 1 gekennzeichnet ist, ist es erforderlich. Fehler beim Verarbeiten des Elements wird diese Ausnahme generiert.
ClientFaultCode Ein Clientanruf wurde nicht richtig formatiert oder enthielt nicht die entsprechenden Informationen. Beispielsweise verfügt der Clientanruf möglicherweise nicht über die richtigen Authentifizierungs- oder Zahlungsinformationen. Es ist in der Regel ein Hinweis darauf, dass die Nachricht geändert werden muss, bevor sie erneut sendet.
ServerFaultCode Fehler bei der Verarbeitung eines Clientaufrufs auf dem Server, das Problem liegt jedoch nicht an den Nachrichteninhalten. Ein Upstreamserver reagiert beispielsweise aufgrund von Netzwerkproblemen möglicherweise nicht auf eine Anforderung. In der Regel kann der Clientaufruf später erfolgreich sein. Wenn ein XML-Webdienst eine Ausnahme auslöst, außer SoapException und die Clientaufrufe mit SOAP, konvertiert ASP.NET die Ausnahme in eine SoapException, festlegen die Code Eigenschaft auf ServerFaultCode und löst sie zurück an den Client.

Gilt für:

Weitere Informationen