3

最近、NLog(http://nlog.codeplex.com/)ログをAsp.NetReSTfulWebサービスに追加しました。

ロギングは正常に期待どおりに機能するようになりましたが、予期しない結果になりました。Global.asaxで発生しているイベントの順序は、ログでの有用な出力であることが証明されていません。

イベントは次のとおりです。

void Application_Start(object sender, EventArgs e)
{
    logger.Info("Application Started");
}

void Application_End(object sender, EventArgs e)
{
    //  Code that runs on application shutdown
    logger.Info("Application Ended");
}

void Application_Error(object sender, EventArgs e)
{
    // Code that runs when an unhandled error occurs
    logger.Error("Unhandled Application Error");
}

void Session_Start(object sender, EventArgs e)
{
    // Code that runs when a new session is started
    logger.Info("Session Started");
}

void Session_End(object sender, EventArgs e)
{
    // Code that runs when a session ends. 
    // Note: The Session_End event is raised only when the sessionstate mode
    // is set to InProc in the Web.config file. If session mode is set to StateServer 
    // or SQLServer, the event is not raised.
    logger.Info("Session Ended");
}

ログ出力は、期待したものではありません。これは開始してから停止します。

2013-01-03 14:54:25.2106|INFO|PoppyService.Global|Application Ended
2013-01-03 14:54:25.8166|INFO|PoppyService.Global|Application Started
2013-01-03 14:54:27.3610|INFO|PoppyService.Configuration|Configuration Registration
2013-01-03 14:54:29.9170|INFO|PoppyService.Global|Session Started
2013-01-03 14:54:36.7722|INFO|PoppyService.Global|Application Started
2013-01-03 14:54:36.9750|INFO|PoppyService.Configuration|Configuration Registration

イベントは、異常な順序で、間違った時間にトリガーされています。

psは「構成登録」を無視します

現在、Visual Studio 2010を使用してサービスを起動していますが、[プロパティ]-> [Web]の[サーバー]設定は、VSDSではなく[ローカルIISWebサーバーを使用する]に設定されています。

イベントに配置されたブレークポイントは、Session_Startを除いて実行を停止しませんが、これは、デバッガーが起動する前にイベントが発生するためか、IISサーバーを使用していることが原因である可能性があるためだと思います。

4

0 に答える 0