Gewusst wie: Auslösen von Ausnahmen von einem mit ASP.NET erstellten Webdienst
Codebeispiel
Im folgenden Codebeispiel wird eine SoapException-Ausnahme ausgelöst und durch Festlegen der Detail-Eigenschaft werden zusätzliche Informationen über die Ausnahme bereitgestellt. Weitere Informationen zum Auslösen von Ausnahmen von ASP.NET-Webdiensten finden Sie unter "Behandeln und Auslösen von Ausnahmen in XML-Webdiensten".
Beispiel
<%@ WebService Language="VB" class="ThrowSoapException"%>
Imports System
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml.Serialization
Imports System.Xml
Public Class ThrowSoapException
Inherits WebService
' This Web service method throws a SOAP client fault code.
<WebMethod()> _
Public Sub myThrow()
' Build the detail element of the SOAP fault.
Dim doc As New System.Xml.XmlDocument()
Dim node As System.Xml.XmlNode = _
doc.CreateNode(XmlNodeType.Element, _
SoapException.DetailElementName.Name, _
SoapException.DetailElementName.Namespace)
' Build specific details for the SoapException.
' Add first child of detail XML element.
Dim details As System.Xml.XmlNode = _
doc.CreateNode(XmlNodeType.Element, _
"mySpecialInfo1", "http://tempuri.org/")
' Add second child of detail XML element with an attribute.
Dim details2 As System.Xml.XmlNode = _
doc.CreateNode(XmlNodeType.Element, _
"mySpecialInfo2", "http://tempuri.org/")
Dim attr As XmlAttribute = doc.CreateAttribute("t", _
"attrName", "http://tempuri.org/")
attr.Value = "attrValue"
details2.Attributes.Append(attr)
' Append the two child elements to the detail node.
node.AppendChild(details)
node.AppendChild(details2)
'Throw the exception.
Dim se As New SoapException("Fault occurred", _
SoapException.ClientFaultCode, _
Context.Request.Url.AbsoluteUri, node)
Throw se
Return
End Sub
End Class
<%@ WebService Language="C#" class="ThrowSoapException"%>
using System;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Serialization;
using System.Xml;
public class ThrowSoapException : WebService
{
// This Web service method throws a SOAP client fault code.
[WebMethod]
public void myThrow(){
// Build the detail element of the SOAP fault.
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
System.Xml.XmlNode node = doc.CreateNode(XmlNodeType.Element,
SoapException.DetailElementName.Name, SoapException.DetailElementName.Namespace);
// Build specific details for the SoapException.
// Add first child of detail XML element.
System.Xml.XmlNode details =
doc.CreateNode(XmlNodeType.Element, "mySpecialInfo1",
"http://tempuri.org/");
System.Xml.XmlNode detailsChild =
doc.CreateNode(XmlNodeType.Element, "childOfSpecialInfo",
"http://tempuri.org/");
details.AppendChild(detailsChild);
// Add second child of detail XML element with an attribute.
System.Xml.XmlNode details2 =
doc.CreateNode(XmlNodeType.Element, "mySpecialInfo2",
"http://tempuri.org/");
XmlAttribute attr = doc.CreateAttribute("t", "attrName",
"http://tempuri.org/");
attr.Value = "attrValue";
details2.Attributes.Append(attr);
// Append the two child elements to the detail node.
node.AppendChild(details);
node.AppendChild(details2);
//Throw the exception
SoapException se = new SoapException("Fault occurred",
SoapException.ClientFaultCode,
Context.Request.Url.AbsoluteUri ,
node);
throw se;
return;
}
}
Siehe auch
Aufgaben
Gewusst wie: Behandeln von durch eine Webdienstmethode ausgelösten Ausnahmen
Referenz
SoapException Class
SoapHeaderException Class
Konzepte
Behandeln und Auslösen von Ausnahmen in XML-Webdiensten
Erstellen von XML-Webdienstclients
Weitere Ressourcen
Handling and Throwing Exceptions
XML-Webdienste, die ASP.NET verwenden
Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.