SoapException.Code Eigenschap

Definitie

Hiermee haalt u het type SOAP-foutcode op.

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

Waarde van eigenschap

Een XmlQualifiedName die de SOAP-foutcode aangeeft die is opgetreden.

Voorbeelden

In het volgende voorbeeld van het webformulier wordt de Math methode Webservice aangeroepen, die een uitzondering genereert als er een deling door nul plaatsvindt. Zodra de uitzondering is gegenereerd, wordt de uitzondering in het webformulier onderschept en worden de details van de uitzondering uitgevoerd, inclusief de Actor en Code eigenschappen in een HtmlTable besturingselement.

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

Om het voorgaande webformulier het volgende Math XML-webservicevoorbeeld te kunnen gebruiken, is er een naamruimte MyMath opgegeven tijdens het maken van de proxyklasse.

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

Opmerkingen

De Code eigenschap kan alleen worden ingesteld bij het maken van een nieuw exemplaar van de SoapException klasse.

De SoapException klasse is bedoeld voor gebruik door XML-webserviceclients die XML-webservicemethoden aanroepen via SOAP. ASP.NET verwerkt of de client die aanroept SOAP gebruikt. Dit is wanneer er een uitzondering optreedt in een XML-webservice. Als de client SOAP gebruikt, verpakt ASP.NET de specifieke uitzondering in een SoapException en stelt u de eigenschappen Actor en Code in.

De set beschikbare codes, bekend als SOAP-foutcodes voor SOAP-protocol versie 1.1, zijn het volgende:

Item Description
VersionMismatchFaultCode Er is een ongeldige naamruimte gevonden voor een SOAP-envelop.
MustUnderstandFaultCode Niet alle SOAP-elementen vereisen verwerking. Als een SOAP-element echter is gemarkeerd met het MustUnderstand kenmerk met de waarde 1, is dit vereist. Als het element niet kan worden verwerkt, wordt deze uitzondering gegenereerd.
ClientFaultCode Een clientoproep is niet correct opgemaakt of bevat niet de juiste informatie. De clientoproep heeft bijvoorbeeld mogelijk niet de juiste verificatie- of betalingsgegevens. Het is over het algemeen een indicatie dat het bericht moet worden gewijzigd voordat het opnieuw wordt verzonden.
ServerFaultCode Er is een fout opgetreden tijdens het verwerken van een clientaanroep op de server, maar het probleem wordt niet veroorzaakt door de inhoud van het bericht. Een upstream-server reageert bijvoorbeeld mogelijk niet op een aanvraag vanwege netwerkproblemen. Normaal gesproken kan de clientoproep later slagen, met dit type uitzondering. Als een XML-webservice een uitzondering genereert, met uitzondering van SoapException en de clientaanroepen met SOAP, converteert ASP.NET de uitzondering naar een SoapException, stelt u de eigenschap Code in op ServerFaultCode en gooit u deze terug naar de client.

Van toepassing op

Zie ook