1

ユーザーが Web サイトにログインすると、ユーザー関連の値 ( など) を持つ 5 つのセッション変数を作成していuseridますroleid。セッション変数に格納されている値の 1 つに基づいて、データベース内のレコードを更新する必要があります。これを行うためにSession_End()、Global.asax のイベントで次のコードを書いています。

if (Session["UserHistoryID"] != null)
        SessionUtility.UpdateDatabase(Convert.ToInt32(Session["UserHistoryID"]));

ここでの問題は、セッションがタイムアウトして変数がSession_End発生し、上記の条件が失敗してデータベース内のレコードが更新されない場合です。これをローカル システムでテストすると正常に動作しますが、実稼働サーバーでテストすると一部のレコードが更新されませんSessionSession["UserHistoryID"]NULL

なぜこうなった?

誰かが正確にどのように機能するかを説明してくださいSession_End

どこでも検索しましたが、これに対する解決策が見つかりません。

4

2 に答える 2

0

Session_End イベントでアクセスしたい各セッション値の変数を宣言し、セッションの値をこの変数に格納し、宣言された変数を my 機能で使用すると、正常に動作します

void Session_End(object sender, EventArgs e)
{
   int var=0;
   if (Session["value"] != null)
   {
      var = Convert.ToInt32(Session["value"]);
      UpdateToDatabase(var);
   }
}
于 2013-04-19T12:56:47.337 に答える