マスターページが2回呼び出されています。ページ全体がレンダリングされた後。この時点で、isPostback値はfalseであり、SESSIONはnullです。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//SOME CODE
try
{
strUserId = Session[USERID].ToString();
}
catch
{
Response.Redirect("error.aspx");
}
}
}
マスターページの最初のページの読み込み(ページのレンダリング前)では、すべて問題ありません。再度レンダリングした後、マスターページのpage_loadが呼び出されます。今回SESSIONにアクセスすると、例外が発生します。
HttpException(セッション状態は、構成ファイルまたはPageディレクティブのいずれかでenableSessionStateがtrueに設定されている場合にのみ使用できます。また、System.Web.SessionStateModuleまたはカスタムセッション状態モジュールが
<configuration>\<system.web>\<httpModules>
アプリケーションのセクションに含まれていることを確認してください。構成。)。
page_loadが2回または3回呼び出されても、問題はありません。2ページ目の読み込み時にSESSIONにアクセスしたくありません。
編集2
2番目のマスターページの読み込みは、私が以前に監視したこのコード(現在のGlobal.asaxファイル)が原因で発生しています。
void Application_Error(object sender, EventArgs e)
{
Server.Transfer("~/ErrorMessage.aspx");
}
ErrorMessage.aspxページは、マスターページの子ページです:(
しかし、それでも答えられる質問は、ページのレンダリングが成功した場合でもApplication_Error()が生成されるのはなぜですか?Application_Error()でブレークポイントを維持しようとしましたが、イベント引数は毎回空です。