我正在编写一个具有事务队列的WCF服务。 如果消息处理继续失败,它将被发送到毒性队列,并将被记录这些失败的另一个服务读取。
问题是:如何访问阻止邮件处理的抛出异常?
答案 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您可以执行的操作。