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 に答える