SoapException.Code Egenskap

Definition

Hämtar typen av SOAP-felkod.

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

Egenskapsvärde

En XmlQualifiedName som anger SOAP-felkoden som inträffade.

Exempel

I följande webbformulärexempel anropas Math metoden Webbtjänst, vilket utlöser ett undantag om en division med noll inträffar. När undantaget har genererats fångar webbformuläret undantaget och matar ut undantagsinformationen Actor , inklusive egenskaperna och Code till en HtmlTable kontroll.

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

För att det föregående webbformuläret ska kunna använda följande Math XML-webbtjänstexempel angavs ett namnområde MyMath för när proxyklassen skapades.

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

Kommentarer

Egenskapen Code kan bara anges när du skapar en ny instans av SoapException klassen.

Klassen används av XML-webbtjänstklienter SoapException som anropar XML-webbtjänstmetoder via SOAP. ASP.NET hanterar om klienten som anropar använder SOAP. Det här är när ett undantag inträffar i en XML-webbtjänst. Om klienten använder SOAP omsluter ASP.NET det specifika undantaget till en SoapException och anger egenskaperna Actor och Code.

Uppsättningen med tillgängliga koder, så kallade SOAP-felkoder för SOAP-protokoll version 1.1, är följande:

Objekt Description
VersionMismatchFaultCode Ett ogiltigt namnområde för ett SOAP-kuvert hittades.
MustUnderstandFaultCode Alla SOAP-element kräver inte bearbetning. Men om ett SOAP-element är markerat med MustUnderstand attributet med värdet 1 krävs det. Det här undantaget genereras om elementet inte bearbetas.
ClientFaultCode Ett klientanrop har inte formaterats korrekt eller innehåller inte lämplig information. Klientanropet kanske till exempel inte har rätt autentiserings- eller betalningsinformation. Det är vanligtvis en indikation på att meddelandet måste ändras innan det skickas på nytt.
ServerFaultCode Ett fel uppstod under bearbetningen av ett klientanrop på servern, men problemet beror inte på meddelandeinnehållet. En överordnad server kanske till exempel inte svarar på en begäran på grund av nätverksproblem. Med den här typen av undantag kan klientanropet vanligtvis lyckas senare. Om en XML-webbtjänst utlöser ett undantag, förutom SoapException och klientanropen med SOAP, konverterar ASP.NET undantaget till en SoapException och anger egenskapen Code till ServerFaultCode och genererar den tillbaka till klienten.

Gäller för

Se även