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, der den Code des aufgetretenen SOAP-Fehlers angibt.
Beispiele
Im folgenden Webformularbeispiel wird die Math
Webdienstmethode aufgerufen, die eine Ausnahme auslöst, wenn eine Division durch 0 erfolgt. Sobald die Ausnahme ausgelöst wurde, fängt das Webformular die Ausnahme ab und gibt die Ausnahmedetails, einschließlich der Actor Eigenschaften und Code , in einem Steuerelement aus 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>
Damit das vorherige Webformular das folgende Math
XML-Webdienstbeispiel verwenden kann, wurde bei der Erstellung der Proxyklasse ein Namespace von 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 eines neuen instance der SoapException -Klasse festgelegt werden.
Die SoapException -Klasse ist für die Verwendung durch XML-Webdienstclients vorgesehen, die XML-Webdienstmethoden über SOAP aufrufen. ASP.NET behandelt, ob der Client, der SOAP aufruft, verwendet. Dies ist der Fall, wenn eine Ausnahme in einem XML-Webdienst auftritt. Wenn der Client SOAP verwendet, umschließt ASP.NET die spezifische Ausnahme in eine SoapException und legt die Actor Eigenschaften und Code fest.
Die verfügbaren Codes, die als SOAP-Fehlercodes für SOAP-Protokoll Version 1.1 bezeichnet werden, sind die folgenden:
Element | Beschreibung |
---|---|
VersionMismatchFaultCode | Ein ungültiger Namespace für einen SOAP-Umschlag wurde gefunden. |
MustUnderstandFaultCode | Nicht alle SOAP-Elemente müssen verarbeitet werden. Wenn ein SOAP-Element jedoch mit dem Attribut mit dem MustUnderstand Wert 1 gekennzeichnet ist, ist es erforderlich. Wenn das Element nicht verarbeitet wird, wird diese Ausnahme generiert. |
ClientFaultCode | Ein Clientaufruf war nicht ordnungsgemäß formatiert oder enthielt nicht die entsprechenden Informationen. Beispielsweise verfügt der Clientaufruf möglicherweise nicht über die richtigen Authentifizierungs- oder Zahlungsinformationen. Dies ist im Allgemeinen ein Hinweis darauf, dass die Nachricht geändert werden muss, bevor sie erneut gesendet wird. |
ServerFaultCode | Während der Verarbeitung eines Clientaufrufs auf dem Server ist ein Fehler aufgetreten. Das Problem ist jedoch nicht auf den Inhalt der Nachricht zurückzuführen. Beispielsweise reagiert ein Upstream Server aufgrund von Netzwerkproblemen möglicherweise nicht auf eine Anforderung. Bei diesem Ausnahmetyp kann der Clientaufruf in der Regel später erfolgreich sein. Wenn ein XML-Webdienst eine Ausnahme auslöst, die nicht SoapException und der Client mithilfe von SOAP aufruft, konvertiert ASP.NET die Ausnahme in ein SoapException, legt die Code -Eigenschaft auf ServerFaultCode fest und wirft sie zurück an den Client. |