5

値が格納されていない場合、セッションIDは変化し続けると確信しています。

ここに画像の説明を入力してください

しかし、2010年には例外があるようです: これがデモビデオです

新しいページ(空のプロジェクト):

   protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(Session.SessionID);
    }

奇妙ですが、ポストバック/更新/ ctrl + f5の後:同じ番号を取得します...しかし、そのようにべきではありません....(何も保存しなかったため)

ここに画像の説明を入力してください

私は何が欠けていますか?

ps Session.Count =0....。

編集

iveはvs2005で同じコードを実行するだけで、毎回新しいセッションIDがあります!!!!

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

4

1 に答える 1

2

そうあるべきです。

セッションは、決められた時間内にすべての要求/応答に対して存在する特別なASP.NETランタイムオブジェクトです。ページの読み込みやポストバックに関係なく、同じままであるのは仕様によるものです。

セッションは終了し、タイムアウト期間に達します。セッションを存続させたい正確なタイムアウトを制御できます。

ASP.NETでのセッションタイムアウト

また、リクエスト間でセッションを永続化する場所を制御することもできます。

http://msdn.microsoft.com/en-us/library/z1hkazw7.aspx

メモリ状態管理は単純化されたものであり、SessionオブジェクトをRAMに保持するだけです。したがって、アプリプールがリサイクルされた場合、すべてのデータが失われます。より本番環境に対応したシナリオには、SQL状態管理が含まれます。

編集: VS2005で実行している場合は、古いバージョンのASP.NET Web開発サーバー(Cassini)で実行していると思います。実際、Sessionに何も保存されていない場合は、新しい要求ごとにSessionを実行する方法があります。 。

于 2012-04-18T09:50:11.177 に答える