2

有什么方法可以捕获和记录 WCF 服务的构造函数抛出的异常?

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

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

4

2 回答 2

2

您可以使用 WCF 跟踪

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

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

于 2012-04-11T19:57:49.130 回答
0

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

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
于 2016-07-01T20:42:12.357 回答