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 и задает Actor свойства и Code .
Ниже приведен набор доступных кодов, известных как коды ошибок SOAP для протокола SOAP версии 1.1.
Элемент | Описание |
---|---|
VersionMismatchFaultCode | Обнаружено недопустимое пространство имен для конверта SOAP. |
MustUnderstandFaultCode | Не все элементы SOAP требуют обработки. Однако если элемент SOAP помечен MustUnderstand атрибутом со значением 1, он является обязательным. Если не обработать элемент, это исключение возникает. |
ClientFaultCode | Вызов клиента был отформатирован неправильно или не содержал соответствующих сведений. Например, вызов клиента может не иметь надлежащей информации для проверки подлинности или оплаты. Как правило, это указывает на то, что сообщение должно быть изменено, прежде чем оно будет повторно отправлено. |
ServerFaultCode | Во время обработки вызова клиента на сервере произошла ошибка, однако проблема не связана с содержимым сообщения. Например, сервер вышестоящий может не отвечать на запрос из-за проблем с сетью. Как правило, при таком типе исключения вызов клиента может завершиться успешно позже. Если веб-служба XML создает исключение, отличное SoapException от и клиент вызывает с помощью ПРОТОКОЛА SOAP, ASP.NET преобразует исключение SoapExceptionв , присвоив свойству Code значение ServerFaultCode и возвращает его клиенту. |