我正在爲我的WCF服務使用Enterprise Library Validation Application Block。一切都很好,.Net消費者可以捕獲FaultException<ValidationFault>
異常,以獲得一系列人類可讀的業務錯誤。然而,對於非網絡消費者來說,這看起來並不是那麼好,特別是那些正在查看原始SOAP消息的人。 SOAP原因文本始終爲「此故障的創建者未指定原因」這不是很有幫助,因爲是的一個原因,它在<Detail>
元素下指定,如示例中所示故障消息下面。WCF EntLib驗證 - 更改默認的SOAP錯誤原因文本
有什麼辦法來改變文字「此故障的創建者未指定原因。」的東西更有益的,如「見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>
我有同樣的問題。我認爲沒有辦法使用WCF的企業庫驗證行爲來做到這一點。 – softveda 2009-07-22 11:45:24
是啊,我在StackOverflow的日子之前調查了一下,這是我得出的結論,但我想我會在這裏發帖檢查! – 2009-07-22 12:04:10