为什么通过WCF服务抛出SoapException被视为FaultException ?

本文关键字:FaultException SoapException WCF 服务 为什么 | 更新日期: 2023-09-27 18:12:30

当我像这样在服务端抛出SoapException时,我感到困惑:

 Throw New SoapException("Error Message", SoapException.ClientFaultCode)

在客户端,异常被视为FaultException -它进入这个catch

Catch ex As FaultException(Of ExceptionDetail)

为什么这不是一个SoapException,因此进入下面?

Catch ex As SoapException

为什么通过WCF服务抛出SoapException被视为FaultException ?

当你抛出的不是FaulException或者FaultException(Of TDetail) (SoapException不是),WCF会抛出一个FaultException

我怀疑你打开了ServiceBehaviorAttribute.IncludeExceptionDetailInFaults ?这就是为什么WCF发送一个FaultException(Of ExceptionDetail), ExceptionDetail从你抛出的异常初始化。