SoapException.Code Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera typ kodu błędu PROTOKOŁU 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
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 .
<%@ 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>
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
.
<%@ 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
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. |