SoapException.Code Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft den Typ des SOAP-Fehlercodes ab.
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
Eigenschaftswert
Ein XmlQualifiedName Wert, der den aufgetretenen SOAP-Fehlercode angibt.
Beispiele
Im folgenden Webformularbeispiel wird die Math Webdienstmethode aufgerufen, die eine Ausnahme auslöst, wenn eine Division um Null auftritt. Sobald die Ausnahme ausgelöst wurde, fängt das Webformular die Ausnahme ab und gibt die Ausnahmedetails aus, einschließlich der und Code der Actor Eigenschaften in einem HtmlTable Steuerelement.
<%@ 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>
Damit das vorangehende Webformular das folgende Math XML-Webdienstbeispiel verwenden kann, wurde während der Erstellung der Proxyklasse ein Namespace MyMath angegeben.
<%@ 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
Hinweise
Die Code Eigenschaft kann nur beim Erstellen einer neuen Instanz der SoapException Klasse festgelegt werden.
Die SoapException Klasse wird von XML-Webdienstclients verwendet, die XML-Webdienstmethoden über SOAP aufrufen. ASP.NET behandelt, ob der Client, der SOAP aufruft, SOAP verwendet. Dies ist der Fall, wenn eine Ausnahme in einem XML-Webdienst auftritt. Wenn der Client SOAP verwendet, schließt ASP.NET die spezifische Ausnahme in eine SoapException und legt die Actor Eigenschaften fest Code .
Die verfügbaren Codes, die als SOAP-Fehlercodes für SOAP-Protokollversion 1.1 bezeichnet werden, sind die folgenden:
| Element | Beschreibung |
|---|---|
| VersionMismatchFaultCode | Es wurde ein ungültiger Namespace für einen SOAP-Umschlag gefunden. |
| MustUnderstandFaultCode | Nicht alle SOAP-Elemente erfordern eine Verarbeitung. Wenn jedoch ein SOAP-Element mit dem MustUnderstand Attribut mit dem Wert 1 gekennzeichnet ist, ist es erforderlich. Fehler beim Verarbeiten des Elements wird diese Ausnahme generiert. |
| ClientFaultCode | Ein Clientanruf wurde nicht richtig formatiert oder enthielt nicht die entsprechenden Informationen. Beispielsweise verfügt der Clientanruf möglicherweise nicht über die richtigen Authentifizierungs- oder Zahlungsinformationen. Es ist in der Regel ein Hinweis darauf, dass die Nachricht geändert werden muss, bevor sie erneut sendet. |
| ServerFaultCode | Fehler bei der Verarbeitung eines Clientaufrufs auf dem Server, das Problem liegt jedoch nicht an den Nachrichteninhalten. Ein Upstreamserver reagiert beispielsweise aufgrund von Netzwerkproblemen möglicherweise nicht auf eine Anforderung. In der Regel kann der Clientaufruf später erfolgreich sein. Wenn ein XML-Webdienst eine Ausnahme auslöst, außer SoapException und die Clientaufrufe mit SOAP, konvertiert ASP.NET die Ausnahme in eine SoapException, festlegen die Code Eigenschaft auf ServerFaultCode und löst sie zurück an den Client. |