2

いくつかのフォームでユーザー入力を受け取るASP.NETWebアプリケーションがあります。ウィザードのようなものです。最初のフォームで、ユーザーは情報を入力し、[次へ]ボタンをクリックします。ボタンのClickイベントで、いくつかの情報をSessionオブジェクトに保存します(マスターページのプロパティを使用)。次に、次のページにリダイレクトします。

これが私がしていることの例です:

最初のページで...

protected void NextButton_Click(Object sender, EventArgs args)
{
  //Go to the next form
  Master.SessionVal1 = Value1;
  Master.SessionVal2 = Value2;
  Response.Redirect("~/TheNextPage.aspx", false);
}

MasterPage.csで。

public long Value1
{
    get { return (long)Session["Value1"]; }
    set { Session["Value1"] = value; }
}

public long Value2
{
    get { return (long)Session["Value2"]; }
    set { Session["Value2"] = value; }
}

かなり基本的なもの。VS2008でこれをデバッグモードで実行すると、完全に機能します。これをテストサーバー(IIS7)にプッシュすると、Sessionオブジェクトに格納されているValue1、Value2などにアクセスしようとするとNullReference例外が発生します。

更新: コードを1つのサーバーに移行すると、上記のような問題が発生することがわかりました。ただし、別のサーバーに昇格すると、期待どおりに機能します。

どちらのサーバーも、IIS7を搭載したWindowsServer2008です。アプリケーションプールの設定と状態管理の設定を確認しましたが、違いは見られません。

4

2 に答える 2

1

わかりました。これをweb.configに追加しました。

<sessionState cookieless="true" />

それはうまくいきましたが、これを解決する別の方法が必要です。

于 2010-01-11T18:14:08.643 に答える
0

これら2台のマシンの構成には、間違いなく何か違いがあります。

では、これら2台のマシンのweb.configで差分を実行しましたが、それらは同一ですか?ざっと見ただけでなく、diffプログラムで実行しますか?(私はCompareItが好きです!)

その場合は、構成ツリーの残りの部分を上に移動する必要があります...ASP.NETインストールディレクトリのマスターweb.config...次にmachine.config。

あなたは何かを見つけるでしょう。

于 2010-01-11T21:41:14.503 に答える