【发布时间】:2012-04-11 19:41:47
【问题描述】:
有什么方法可以捕获和记录 WCF 服务的构造函数抛出的异常?
使用自定义 IErrorHandler 创建自定义 IEndpointBehavior 似乎可以捕获所有异常除了在服务构建期间抛出的异常。 (如果我错了,请纠正我。)
我可以从 HTTP 响应中看到,这种情况最终会生成一个 System.ServiceModel.ServiceActivationException,但如果我可以从原始异常中注销详细信息会很有帮助。
【问题讨论】:
-
为什么构造函数会出现异常?你在构造函数里做什么?
-
@KirkWoll 我不知道。这就是我想记录它们的原因。
-
我问是因为我的构造函数中没有包含任何行为。因此,对我来说,抛出异常是不可能的。我很惊讶你的构造函数有行为。此外,
ServiceActivationException通常是由于配置错误造成的。换句话说,这意味着您的设置已损坏,通常不值得记录。 -
@KirkWoll 在这种特殊情况下,我碰巧有预感。一个构造函数正在从文件中读取服务配置数据。我认为一台特定服务器上的文件系统权限正在阻止这种情况。但我想找到一个通用的解决方案,这样我就不必只猜测什么时候出了问题,而且我碰巧没有附加调试器。