我正在编写一个具有事务队列的 WCF 服务。如果消息处理继续失败,它将被发送到毒物队列,并被另一个记录这些失败的服务读取。
问题是:如何访问引发的阻止消息处理的异常?
您的消息最终进入毒物队列的原因是您的 WCF 服务引发了未捕获的异常。
因此,您可以在 WCF 服务中添加全局异常处理程序,并将其记录在事件查看器或日志或您喜欢的任何内容中。
您可以做的另一件事是通过将以下内容添加到 app.config 以记录任何严重或错误来配置跟踪:
<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>
查看receiveErrorHandling 选项,当您的 WCF 遇到未捕获的异常时您可以执行哪些操作。