SoapException.Code Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar typen av SOAP-felkod.
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
Egenskapsvärde
En XmlQualifiedName som anger SOAP-felkoden som inträffade.
Exempel
I följande webbformulärexempel anropas Math metoden Webbtjänst, vilket utlöser ett undantag om en division med noll inträffar. När undantaget har genererats fångar webbformuläret undantaget och matar ut undantagsinformationen Actor , inklusive egenskaperna och Code till en HtmlTable kontroll.
<%@ 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>
För att det föregående webbformuläret ska kunna använda följande Math XML-webbtjänstexempel angavs ett namnområde MyMath för när proxyklassen skapades.
<%@ 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
Kommentarer
Egenskapen Code kan bara anges när du skapar en ny instans av SoapException klassen.
Klassen används av XML-webbtjänstklienter SoapException som anropar XML-webbtjänstmetoder via SOAP. ASP.NET hanterar om klienten som anropar använder SOAP. Det här är när ett undantag inträffar i en XML-webbtjänst. Om klienten använder SOAP omsluter ASP.NET det specifika undantaget till en SoapException och anger egenskaperna Actor och Code.
Uppsättningen med tillgängliga koder, så kallade SOAP-felkoder för SOAP-protokoll version 1.1, är följande:
| Objekt | Description |
|---|---|
| VersionMismatchFaultCode | Ett ogiltigt namnområde för ett SOAP-kuvert hittades. |
| MustUnderstandFaultCode | Alla SOAP-element kräver inte bearbetning. Men om ett SOAP-element är markerat med MustUnderstand attributet med värdet 1 krävs det. Det här undantaget genereras om elementet inte bearbetas. |
| ClientFaultCode | Ett klientanrop har inte formaterats korrekt eller innehåller inte lämplig information. Klientanropet kanske till exempel inte har rätt autentiserings- eller betalningsinformation. Det är vanligtvis en indikation på att meddelandet måste ändras innan det skickas på nytt. |
| ServerFaultCode | Ett fel uppstod under bearbetningen av ett klientanrop på servern, men problemet beror inte på meddelandeinnehållet. En överordnad server kanske till exempel inte svarar på en begäran på grund av nätverksproblem. Med den här typen av undantag kan klientanropet vanligtvis lyckas senare. Om en XML-webbtjänst utlöser ett undantag, förutom SoapException och klientanropen med SOAP, konverterar ASP.NET undantaget till en SoapException och anger egenskapen Code till ServerFaultCode och genererar den tillbaka till klienten. |