我正在编写具有事务队列的 WCF 服务。如果消息处理继续失败,它将被发送到毒药队列,并由记录这些失败的另一个服务读取。
问题是:我如何访问阻止消息处理的抛出异常?
您的消息之所以进入毒药队列,是因为您的 WCF 服务抛出了一个未被捕获的异常。
因此,您可以在 WCF 服务中添加一个全局异常处理程序,并将其记录在事件查看器或日志或您喜欢的任何内容中。
您可以做的另一件事是 configure tracing通过将以下内容添加到您的 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>
看看the receiveErrorHandling options当您的 WCF 遇到未捕获的异常时,您可以做什么。
我是一名优秀的程序员,十分优秀!