SoapException 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示通过 SOAP 调用 XML Web services 方法且出现异常时引发的异常。
public ref class SoapException : SystemException
public class SoapException : SystemException
[System.Serializable]
public class SoapException : SystemException
type SoapException = class
inherit SystemException
[<System.Serializable>]
type SoapException = class
inherit SystemException
Public Class SoapException
Inherits SystemException
- 继承
- 派生
- 属性
示例
以下示例引发 , SoapException 其中 XML Web 服务方法设置 属性 Detail 。
<%@ 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 XML Web service method generates 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; }
}
<%@ 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 XML Web service method generates 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
注解
SoapException可由公共语言运行时或 XML Web 服务方法引发。 如果对请求的响应格式不正确,公共语言运行时可能会引发 SoapException 。 XML Web 服务方法只需在 XML Web 服务方法中引发异常即可生成 SoapException 。 如果客户端通过 SOAP 访问了 方法,则会在服务器上捕获异常并将其包装在新的 SoapException中。 SoapException引发的 具有以下属性值:
properties | 值 |
---|---|
Message | Message原始异常的 属性。 |
Code | ServerFaultCode. |
Actor | XML Web 服务方法的 URL。 |
Detail |
null ,但错误元素中存在一个空的详细信息元素。 |
当客户端使用 SOAP 调用 时, SoapException XML Web 服务方法可能会引发 。 如果 XML Web 服务引发 SoapException,则可以通过 ActorCode 添加其他详细信息,如果Detail引发另一种类型的异常,则 XML Web 服务方法无法设置这些属性。
构造函数
字段
ClientFaultCode |
指定 SOAP 错误代码,该代码表示客户端调用的格式设置不正确或者没有包含适当的信息。 |
DetailElementName |
获取 XmlQualifiedName,它表示 SOAP 错误代码的 Detail 元素。 |
MustUnderstandFaultCode |
SOAP 错误代码,它表示没有处理用 |
ServerFaultCode |
指定一个 SOAP 错误代码,该错误代码表示在处理客户端对服务器的调用的过程中出错,但问题不是由消息内容导致的。 |
VersionMismatchFaultCode |
SOAP 错误代码,它表示在处理 SOAP 消息的过程中发现无效的 SOAP 信封命名空间。 |
属性
Actor |
获取导致异常的代码段。 |
Code |
获取 SOAP 错误代码的类型。 |
Data |
获取键/值对的集合,这些键/值对提供有关该异常的其他用户定义信息。 (继承自 Exception) |
Detail |
获取表示应用程序特定的详细错误信息的 XmlNode。 |
HelpLink |
获取或设置指向与此异常关联的帮助文件链接。 (继承自 Exception) |
HResult |
获取或设置 HRESULT(一个分配给特定异常的编码数字值)。 (继承自 Exception) |
InnerException |
获取导致当前异常的 Exception 实例。 (继承自 Exception) |
Lang |
获取与该异常关联的人类语言。 |
Message |
获取描述当前异常的消息。 (继承自 Exception) |
Node |
获取表示导致异常的代码段的 URI。 |
Role |
获取一个 URI,它表示用于处理 SOAP 消息的 XML Web services 功能。 |
Source |
获取或设置导致错误的应用程序或对象的名称。 (继承自 Exception) |
StackTrace |
获取调用堆栈上的即时框架字符串表示形式。 (继承自 Exception) |
SubCode |
获取 SOAP 错误的 |
TargetSite |
获取引发当前异常的方法。 (继承自 Exception) |
方法
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetBaseException() |
当在派生类中重写时,返回 Exception,它是一个或多个并发的异常的根本原因。 (继承自 Exception) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetObjectData(SerializationInfo, StreamingContext) |
使用关于异常的信息设置 SerializationInfo。 |
GetObjectData(SerializationInfo, StreamingContext) |
已过时.
当在派生类中重写时,用关于异常的信息设置 SerializationInfo。 (继承自 Exception) |
GetType() |
获取当前实例的运行时类型。 (继承自 Exception) |
IsClientFaultCode(XmlQualifiedName) |
返回一个值,该值指示 SOAP 错误代码是否等效于 |
IsMustUnderstandFaultCode(XmlQualifiedName) |
返回一个值,该值指示 SOAP 错误代码是否等效于 |
IsServerFaultCode(XmlQualifiedName) |
返回一个值,该值指示 SOAP 错误代码是否等效于 |
IsVersionMismatchFaultCode(XmlQualifiedName) |
返回一个值,该值指示 SOAP 错误代码是否等效于 |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
创建并返回当前异常的字符串表示形式。 (继承自 Exception) |
事件
SerializeObjectState |
已过时.
当异常被序列化用来创建包含有关该异常的徐列出数据的异常状态对象时会出现该问题。 (继承自 Exception) |