使用する前にベースページクラスにSessionが存在するかどうかを確認したいのですが、存在しない場合は、次のことを確認するだけで例外がスローされることがわかりました。
if (Session != null)
{
Session.Remove("foo");
}
この例外をスローします:
セッション状態は、構成ファイルまたはPageディレクティブのいずれかでenableSessionStateがtrueに設定されている場合にのみ使用できます。また、System.Web.SessionStateModuleまたはカスタムセッション状態モジュールがアプリケーション構成の\\セクションに含まれていることを確認してください。
このチェックは、すべてのaspxページの派生元であるベースページクラスのLoadイベントで行われます。アプリでセッションが有効になっており、httpModulesノードにモジュールがリストされています。これは、セッションを頻繁に使用するアプリで、通常は問題ありません。
このエラーは特定のページでのみ発生し、ほとんどの場合、信頼性がありません。エラーを防ぐために別のことをする必要があることはわかっていますが、何がわかりませんか?
ライフサイクルの早い段階でセッションを呼び出しているのでしょうか。セッションが利用可能かどうかを正しくチェックしていませんか?