Бөлісу құралы:


SoapException.Code Свойство

Определение

Возвращает тип кода сбоя 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

Значение свойства

Указывает XmlQualifiedName код сбоя SOAP, который произошел.

Примеры

В следующем примере веб-формы вызывается Math метод веб-службы, который вызывает исключение, если происходит деление по нулю. После создания исключения веб-форма перехватывает исключение и выводит сведения об исключении, включая Actor свойства и Code элементы HtmlTable управления.

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

Чтобы в приведенной выше веб-форме использовался следующий Math пример веб-службы XML, во время создания прокси-класса было указано пространство MyMath имен.

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

Комментарии

Свойство Code можно задать только при создании нового экземпляра SoapException класса.

Класс SoapException предназначен для использования клиентами веб-службы XML, которые вызывают методы веб-службы XML через SOAP. ASP.NET обрабатывает ли клиент, который вызывает SOAP. Это происходит при возникновении исключения в веб-службе XML. Если клиент использует SOAP, ASP.NET упаковывает конкретное исключение в объект SoapException и Code задает Actor свойства.

Набор доступных кодов, известных как коды сбоя SOAP для протокола SOAP версии 1.1, приведены ниже.

Элемент Описание
VersionMismatchFaultCode Обнаружено недопустимое пространство имен для конверта SOAP.
MustUnderstandFaultCode Не все элементы SOAP требуют обработки. Однако если элемент SOAP помечается атрибутом MustUnderstand со значением 1, это необходимо. Сбой обработки элемента создает это исключение.
ClientFaultCode Вызов клиента не был отформатирован правильно или не содержал соответствующих сведений. Например, вызов клиента может не иметь надлежащей проверки подлинности или сведений об оплате. Как правило, это означает, что сообщение должно быть изменено, прежде чем он обижается.
ServerFaultCode При обработке вызова клиента на сервере произошла ошибка, однако проблема не связана с содержимым сообщения. Например, вышестоящий сервер может не отвечать на запрос из-за проблем с сетью. Как правило, при таком исключении вызов клиента может завершиться успешно позже. Если веб-служба XML создает исключение, отличное SoapException от вызовов клиента с помощью SOAP, ASP.NET преобразует исключение в объект SoapException, задав Code свойство ServerFaultCode и возвращает его клиенту.

Применяется к

См. также раздел