Ich verwende die Enterprise Library Validation Application Block für meine WCF-Dienst. Alles ist in Ordnung, und .Net-Benutzer können die FaultException<ValidationFault>
-Ausnahme abfangen, um eine Sammlung von lesbaren Geschäftsfehlern zu erhalten. Es sieht jedoch nicht so gut aus für Nicht-.Net-Konsumenten, besonders für jene, die die rohe SOAP-Nachricht betrachten werden. Der SOAP-Reason-Text lautet immer "Der Ersteller dieses Fehlers hat keinen Grund angegeben." Dies ist nicht sehr hilfreich, da ein Grund ist, der unter dem <Detail>
-Element angegeben ist, wie in der Beispielfehlermeldung gezeigt unten.WCF EntLib Validierung - ändern Standard SOAP Fault Reason Text
Gibt es eine Möglichkeit, den Text zu ändern „Der Schöpfer dieses Fehlers keinen Grund angegeben hat.“ zu etwas nützlich wie „See ValidationFault Einzelheiten“?
<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>
Ich habe das gleiche Problem. Ich denke, es gibt keine Möglichkeit, dies mit der Enterprise-Bibliothek Validation Behaviour für WCF zu tun. – softveda
yeah, ich habe das vor einiger Zeit vor den Tagen von StackOverflow untersucht und das war die Schlussfolgerung, zu der ich gekommen bin, aber ich dachte, ich würde hier posten, um nachzusehen! –