SoapException.Code Właściwość

Definicja

Pobiera typ kodu błędu PROTOKOŁU SOAP.

C#
public System.Xml.XmlQualifiedName Code { get; }

Wartość właściwości

Element XmlQualifiedName określający kod błędu PROTOKOŁU SOAP, który wystąpił.

Przykłady

Poniższy przykład formularza sieci Web wywołuje metodę Math usługi sieci Web, która zgłasza wyjątek, jeśli wystąpi podział o zero. Po wyrzuceniu wyjątku formularz internetowy przechwytuje wyjątek i wyprowadza szczegóły wyjątku, w tym Actor właściwości i Code do kontrolki HtmlTable .

ASP.NET (C#)
<%@ 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>

Aby poprzedni formularz sieci Web używał następującego Math przykładu usługi sieci Web XML, podczas tworzenia klasy serwera proxy określono przestrzeń nazw MyMath .

ASP.NET (C#)
<%@ 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;
     }
  }

Uwagi

Właściwość Code można ustawić tylko podczas tworzenia nowego wystąpienia SoapException klasy.

Klasa SoapException jest używana przez klientów usługi sieci Web XML wywołujących metody usługi sieci Web XML za pośrednictwem protokołu SOAP. ASP.NET obsługuje, czy klient, który wywołuje protokół SOAP. Dzieje się tak, gdy wyjątek występuje w usłudze sieci Web XML. Jeśli klient używa protokołu SOAP, ASP.NET opakowuje określony wyjątek do elementu SoapException i ustawia Actor właściwości i Code .

Zestaw dostępnych kodów, znanych jako kody błędów PROTOKOŁU SOAP dla protokołu SOAP w wersji 1.1, są następujące:

Element Opis
VersionMismatchFaultCode Znaleziono nieprawidłową przestrzeń nazw koperty PROTOKOŁU SOAP.
MustUnderstandFaultCode Nie wszystkie elementy PROTOKOŁU SOAP wymagają przetwarzania. Jeśli jednak element SOAP jest oznaczony atrybutem MustUnderstand o wartości 1, jest wymagany. Nie można przetworzyć elementu, który generuje ten wyjątek.
ClientFaultCode Wywołanie klienta nie zostało poprawnie sformatowane lub nie zawiera odpowiednich informacji. Na przykład wywołanie klienta może nie mieć odpowiednich informacji dotyczących uwierzytelniania ani płatności. Zazwyczaj jest to wskazanie, że wiadomość musi zostać zmieniona, zanim zostanie ponownie wysłana.
ServerFaultCode Wystąpił błąd podczas przetwarzania wywołania klienta na serwerze, jednak problem nie jest spowodowany zawartością komunikatu. Na przykład serwer nadrzędny może nie odpowiadać na żądanie z powodu problemów z siecią. Zazwyczaj w przypadku tego typu wyjątku wywołanie klienta może zakończyć się powodzeniem później. Jeśli usługa sieci Web XML zgłasza wyjątek, inny niż SoapException i klient wywołuje przy użyciu protokołu SOAP, ASP.NET konwertuje wyjątek na , ustawiając Code właściwość ServerFaultCode na SoapExceptioni zgłasza ją z powrotem do klienta.

Dotyczy

Produkt Wersje
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Zobacz też