WCF MSMQ有害消息异常

时间:2013-07-04 23:34:17

标签: c# wcf msmq

我正在编写一个具有事务队列的WCF服务。 如果消息处理继续失败,它将被发送到毒性队列,并将被记录这些失败的另一个服务读取。

问题是:如何访问阻止邮件处理的抛出异常?

1 个答案:

答案 0 :(得分:1)

您的邮件结束毒性队列的原因是您的WCF服务抛出了一个未被捕获的异常。

因此,您可以在WCF服务中添加全局异常处理程序,并将其记录在事件查看器或日志中或您喜欢的任何内容中。

您可以通过在app.config中添加以下内容来configure tracing,以记录任何关键或错误:

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel" switchValue="Error, Critical" propagateActivity="true">
            <listeners>
                <add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData="c:\traces.svclog" />
            </listeners>
        </source>
    </sources>
</system.diagnostics>

在WCF遇到未捕获的异常时,请查看the receiveErrorHandling options您可以执行的操作。