如何从作为 WCF 服务发布的业务流程抛出错误异常

可以从业务流程发送两种类型的 SOAP 错误:类型化和非类型化的 SOAP 错误。 类型化的 SOAP 错误是指那些操作包含System.ServiceModel.FaultContractAttribute,并指定自定义 SOAP 错误类型的故障。 未类型化的 SOAP 错误是指在操作的契约中未指定的错误。

WCF 适配器不支持处理作为 WCF 服务发布的业务流程中的类型化故障协定异常。 但是,业务流程或管道始终可以返回非类型 SOAP 错误。 若要返回非类型化的 SOAP 错误,您需要在接收位置或配置文件中设置System.ServiceModel.ServiceBehaviorAttribute.IncludeExceptionDetailInFaults,以允许 WCF 客户端获取有关内部服务操作异常的信息。

以下代码演示如何在配置文件中设置属性:

<?xml version="1.0" encoding="utf-8"?>  
<configuration>  
    <system.serviceModel>  
        <behaviors>  
            <serviceBehaviors>  
                <behavior name="ServiceBehaviorConfiguration">  
                    <serviceDebug includeExceptionDetailInFaults="true" />  
                </behavior>  
            </serviceBehaviors>  
        </behaviors>  
</configuration>  

另请参阅

如何处理业务流程中的类型化错误合约