4

バックグラウンド プロセス (Quartz.Net で実装) をシャットダウンできるようにするには、AspNet5 beta8 で Web アプリケーションのシャットダウンを検出する必要があります。Asp.Net の以前のバージョンでは、Application_End でコードを実行できました。AspNet5 の Application_End イベントに相当するものは何ですか?

これまで、Configure で IApplicatonLifetime を試しましたが、Web アプリケーションを停止しても起動しません。

public void Configure(IApplicationBuilder app, IApplicationLifetime lifetime)
{
    lifetime.ApplicationStopping.Register(() =>
    {
        Logger.LogInformation("Application Stopping. Do stuff.");
    });

    lifetime.ApplicationStopped.Register(() =>
    {        
        Logger.LogInformation("Application Stopped. Do stuff.");
    });
}

ApplicationStopping と ApplicationStopped の両方で応答がありません。

4

1 に答える 1

4

古いバージョン (beta5) を試しましたが、コードは正常に機能しました。IIS Express を使用してサイトを正常に停止するときに発生する ApplicationStopping および ApplicationStopped。

beta8 の変更後、IIS でこれらのイベントに問題があるようです。Beta8 ではIIS ホスティングが変更され、HttpPlatformHandler を使用して dnx プロセスを起動するようになりました。残念ながら、シャットダウン イベントが受信されないようです。問題を参照してください(現在、問題に関する詳細はあまりありません)。

私のマシンで beta8 を試してみましたが、問題は IIS に限られているようです:

  • IIS Express を使用すると、ApplicationStartedイベントのみが発生します (サイトを正常に停止した場合でも)。
  • ただし、実行するdnx webと、3 つのイベントが発生します。

dnx コマンドを使用してプロジェクトを実行するには、いくつかの方法があります。

  • IIS Express または dnx コマンドを使用してプロジェクトを実行するかどうかを Visual Studio に伝えます。実行ボタンにドロップダウン メニューがあります。

    プロジェクトの実行時に web または IISExpress を選択する

  • プロジェクトのルート フォルダーでコマンド ウィンドウを開き、実行しますdnx web(web が project.json ファイルで構成されたコマンドであると仮定します)。

于 2015-10-31T21:49:45.430 に答える