记录 WCF 服务构造函数引发的异常

本文关键字:异常 构造函数 WCF 服务 记录 | 更新日期: 2023-09-27 18:30:59

有没有办法捕获和记录从WCF服务的构造函数引发的异常?

使用自定义IErrorHandler创建自定义IEndpointBehavior似乎可以捕获除服务构建期间引发的异常之外的所有异常。(如果我错了,请纠正我。

我可以从 HTTP 响应中看到这种情况最终会产生System.ServiceModel.ServiceActivationException,但如果我可以从原始异常中注销详细信息,那将很有帮助。

记录 WCF 服务构造函数引发的异常

可以使用

WCF 跟踪

http://msdn.microsoft.com/en-us/library/ms733025.aspx

可以在服务配置中打开它,因此无需检测代码。

您需要创建一个类来记录异常,在构造函数中初始化它,并在捕获异常时调用它。下面是一个非常简单的例子:

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