将错误详细信息附加到WCF服务返回的每个故障

时间:2014-11-20 12:41:49

标签: c# wcf

我想要实现的是格式化以下响应消息:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing">
    <s:Header>
        <a:Action s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2004/08/addressing/fault</a:Action>
        <a:To s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:To>
    </s:Header>
    <s:Body>
        <s:Fault>
            <faultcode xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">a:FailedAuthentication</faultcode>
            <faultstring xml:lang="de-DE">Mindestens ein Sicherheitstoken in der Nachricht konnte nicht validiert werden.</faultstring>
            <detail>
                <myCustonDetail>
                ...
                </myCustonDetail>
            </detail>
        </s:Fault>
    </s:Body>
</s:Envelope>

我知道我可以使用FaultContract和IErrorHandler来实现这一点,但是这只处理在服务方法本身内引发异常时的情况。但是在调用service方法之前也会引发异常(在检查Message Security等期间)。然后默认情况下返回没有detail部分的消息。

不幸的是,为了满足一些标准要求,我需要为每个故障响应附加详细信息。在.NET中有可能吗? (没有编写我必须使用的WS- *安全标准的自己的实现)

0 个答案:

没有答案