アプリケーションのApplication_End() イベントは、更新または削除プロセスのボタンを起動した後、コードによってイベントを呼び出さずに起動されます。これにより、すべてのセッションが破棄され、ユーザーが何かを更新/削除するたびにログインページにリダイレクトされます。これは、警告やエラーなしでアプリケーションを終了して再起動する例外が原因で発生していると思います。提案してください。事前の感謝
4 に答える
デバッグモードで実行していますか? AppDomain は、15 回の動的再コンパイルごとにリサイクルされます。ファイルが変更されたときにもリサイクルされますweb.config
。アプリ サイト内でアプリケーション以外のファイルやフォルダーが変更された場合でも、リサイクルされます。そのため、これがリリース モードでも発生するかどうかをテストしてください。
ちなみに、AppDomain のリセットを強制する動的再コンパイルの回数を変更できweb.config
ます。
<compilation numRecompilesBeforeAppRestart="15" />
ヒント: デバッグ中は InProc セッションを使用しないでください。代わりに StateServer または SQL State (私の好み) を使用してください。
詳細については、このブログ投稿を参照してください。
最初に調べる場所は、イベントビューアです。そこで、ワーカープロセスでスローされた未処理の例外を見つけることができます。
セッション状態はApplication_Endでは使用できません。とても簡単です。Application_Endは、他のすべてが長い間なくなった後に発生するイベントです。イベントログエントリは、これを非常によく説明しています。
あなたのサイトは何らかの理由でリサイクルされている可能性があります。コードの動作を確認する必要があります。コードでサイト構造が変更されていないことを確認することをお勧めします (ディレクトリの作成/削除) --- これにより、アプリ ドメインのリサイクルが発生します。