0

Global.asax には、Application_Error ハンドラーにコードがあり、エラー メッセージを HttpRuntime.Cache に保存し、エラーをアプリケーション ログ ファイルに記録してから、ユーザーを Error.aspx ページに転送して、Web サイト テンプレート/テーマ内にメッセージを表示します。 (HttpRuntime.Cache から取得することにより)。

私が知りたいのは、HttpRuntime.Cache コンテンツを管理する良い方法があるかどうかです。

現在、グローバルに使用可能な定数ファイルで定義されているキーを使用して HttpRuntime.Cache 値を設定し、Error.aspx コード ビハインドで明示的に削除しています。

エラー処理が完了したら、HttpRuntime.Cache が適切にクリーンアップされるようにするよりスマートな方法はありますか?

コンテキストから抽象化するには:

MethodA が中央ストレージの場所にいくつかの値を設定する 中央ストレージの値を使用する MethodB にコントロールが転送される 値の読み取りが成功した場合にのみ、MethodB がストレージから値をクリアする必要がある

制限事項: 制御を MethodA に戻すことはできません。MethodB が完了すると、プログラムは終了します。

4

1 に答える 1

0

私見あなたは正しい軌道に乗っています。

私が過去に行ったことは、例外情報を保持するために使用され、Session に格納される DTO (Data Transfer Object、軽量データ オブジェクト) を持つことです。エラーをキャッチし、エラー ページへのリダイレクトを強制するコードは、エラーが回復可能かどうかを示すフラグを DTO に設定し、回復可能な場合は URL も DTO に保存します。これは、エラー ページがエラーをレンダリングできることを意味します。ユーザーがクリックして中断された場所に戻るためのリンク (リンクとその末尾にあるものはすべてあなたが管理しているため、アプリケーション内の好きな場所に戻すか、再作成することができます好きなだけページを続けてください)。

キャッシュはグローバルであるため、あるユーザーの例外情報を別のユーザーの例外情報で上書きできることに注意してください。

于 2011-09-20T03:25:15.400 に答える