我正在为我的 WCF 服务使用企业库验证应用程序块。一切都很好,.Net 消费者可以捕获FaultException<ValidationFault>
异常以获取人类可读的业务错误集合。但是,对于非 .Net 使用者,尤其是那些将要查看原始 SOAP 消息的使用者来说,它看起来并不那么好。SOAP 原因文本始终是“此故障的创建者没有指定原因。 ”这不是很有帮助,因为有一个原因,它在<Detail>
元素下指定,如下面的故障消息示例所示。
有什么方法可以将文本“此故障的创建者没有指定原因。 ”更改为更有用的内容,例如“查看 ValidationFault 详细信息”?
<s:Body>
<s:Fault>
<s:Code>
<s:Value>s:Sender</s:Value>
</s:Code>
<s:Reason>
<s:Text xml:lang="en-GB">The creator of this fault did not specify a Reason.</s:Text>
</s:Reason>
<s:Detail>
<ValidationFault xmlns="http://www.microsoft.com/practices/EnterpriseLibrary/2007/01/wcf/validation" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Details xmlns:b="http://schemas.datacontract.org/2004/07/Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WCF">
<b:ValidationDetail>
<b:Key i:nil="true"/>
<b:Message>Value Validator</b:Message>
<b:Tag>request</b:Tag>
</b:ValidationDetail>
</Details>
</ValidationFault>
</s:Detail>
</s:Fault>
</s:Body>