私のWCFサービスにEnterprise Library Validation Application Blockを使用しています。すべてがうまくいき、.NetコンシューマはFaultException<ValidationFault>
例外をキャッチして、人間が読めるビジネスエラーのコレクションを取得できます。しかし、非ネット消費者、特に生のSOAPメッセージを見ようとしている人にとっては、それほど魅力的ではありません。 SOAP Reasonテキストは常に "です。このフォルトの作成者は理由を指定していません。" がであるため、これはあまり有用ではありません。理由は、フォルトメッセージの例に示すように<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のエンタープライズライブラリvalidationbehaviourを使用してそれを行う方法がないと思う。 – softveda
ええ、私はStackOverflowの日の前にこれを少し前に調べましたが、これは私が来た結論でしたが、私はここにチェックして投稿すると思っていました! –