WCF 异常记录
Posted
技术标签:
【中文标题】WCF 异常记录【英文标题】:WCF Exception Logging 【发布时间】:2014-05-01 20:55:18 【问题描述】:是否可以从我的 WCF 服务记录 ThrowMaxReceivedMessageSizeExceeded 等异常。我知道可以在配置中增加消息大小,但我也希望它记录在我身边。我让 Log4Net 运行以捕获所有未处理的异常,但似乎这并没有被记录,所以可能已被处理。
【问题讨论】:
【参考方案1】:您需要启用跟踪。可以发送到 Nlog。我的 XYZ.exe.config 有一个看起来像这样的部分:
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Error" propagateActivity="true" >
<listeners>
<add name="nlog"/>
</listeners>
</source>
<!--source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="nlog" />
</listeners>
</source-->
</sources>
<sharedListeners>
<add name="nlog" type="NLog.NLogTraceListener, NLog" />
</sharedListeners>
</system.diagnostics>
注意: 我在 XYZ.exe.config 中也有 NLog 配置!
编辑
我刚刚意识到您在谈论 log4net。不是 NLog。
如果您遵循 StephaneT 提供的最后一个 link 并实施 Log4netTraceListener
,您应该也可以使用 XYZ.exe.config 解决方案。
【讨论】:
【参考方案2】:默认情况下,WCF 使用 system.diagnostics 跟踪来记录异常。 见here和here和here
您可以按照this 问题中的说明将系统跟踪重定向到 log4net。
【讨论】:
以上是关于WCF 异常记录的主要内容,如果未能解决你的问题,请参考以下文章