有什么方法可以捕获和记录 WCF 服务的构造函数抛出的异常?
使用自定义创建自IEndpointBehavior
定义IErrorHandler
似乎可以捕获所有异常,除了在服务构建期间抛出的异常。(如果我错了,请纠正我。)
我可以从 HTTP 响应中看到,这种情况最终会生成一个System.ServiceModel.ServiceActivationException
,但如果我可以从原始异常中注销详细信息会很有帮助。
您需要创建一个类来记录异常,在构造函数中对其进行初始化,并在捕获到异常时调用它。下面是一个非常简单的例子:
public class MyWcfService : IMyWcfService
{
private readonly IExceptionLogger_ exceptionLogger;
public MyWcfService()
{
// Initialize dependencies
_exceptionLogger = new ExceptionLogger();
try
{
// Code here that throws an exception
}
catch (Exception ex)
{
_exceptionLogger.LogException(ex);
}
} // end constructor
// Other methods here
} // end class