Я использую Enterprise Library Validation Application Block для моей службы WCF. Все в порядке, и пользователи .Net могут поймать исключение FaultException<ValidationFault>
, чтобы получить сборник человеко-читаемых бизнес-ошибок. Тем не менее, это не выглядит так же хорошо для потребителей, не являющихся клиентами, особенно тех, которые будут смотреть на необработанное сообщение SOAP. Текст SOAP Reason всегда «Создатель этой ошибки не определил причину.« Это не очень полезно, так как там - это причина, указанная в элементе <Detail>
, как показано в примере Сообщение об ошибке ниже.Проверка WCF EntLib - изменение по умолчанию SOAP Fault Текст причины
Есть ли способ, чтобы изменить текст «Создатель этой ошибки не указано Причина.» к чему-то более полезным, как «See 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>
У меня такая же проблема. Я думаю, что нет способа сделать это, используя платформу validationbehaviour для WCF для корпоративной библиотеки. – softveda
Да, я исследовал это некоторое время назад до дней StackOverflow, и это был вывод, к которому я пришел, но я думал, что отправлю сюда, чтобы проверить! –