IRegisteredObjectを使用してアプリケーションのシャットダウンを検出する方法について、いくつか質問がありました。ただし、すべてのアクティブなリクエストが完了するまで、IRegisteredObject.Stop は呼び出されません。
これは、実行時間の長いリクエスト (プッシュレット、ロング ポーリング、Web ソケット) の場合に当てはまります。つまり、これらのリクエストによってアプリケーション プールのリサイクルが無期限に停止される可能性があります。
アプリケーションのシャットダウンが保留中であることを長時間実行されているリクエストから検出する方法はありますか?
IRegisteredObject を使用するか、HostingEnvironment.ShutdownReason をポーリングすることは既にテスト済みです。アクティブなリクエストが完了するまで、どちらも機能しません。