DOBON.NET DOBON.NETプログラミング掲示板過去ログ

sessionのAbandonについて

環境/言語:[Win 2000 Pro VB.NET]
分類:[ASP.NET]

いつもお世話になります。

今回はSessionのAbandonのことについて伺いたい
のですが、Session.Abandonを実行した後にすぐ
Session("aa6") = 4としてやるとそのページ内では
そのSessionは有効なのですが別のページから参照
するとみえません。 Session.Abandonはただのクリア
ではないのでしょうか??

Session("a") = 4
Dim b As Integer = Session("a")
Session.Abandon()
Session("aa6") = b
Label1.Text = Session("aa6")
Response.Redirect("aa.aspx")

'aa.aspxページでの記述
label1.text = Session("aa6")

ラベルの結果は空白

宜しくお願いします。
とりあえず Session.Clearで上記の処理を
正常に実行することが出来ました。
お騒がせしてもうしわけありませんでした。
解決済み!
  • 題名: Re[1]: sessionのAbandonについて
  • 著者: trapemiya
  • 日時: 2005/11/17 16:34:48
  • ID: 13759
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
ブラウザとWebサーバーの関係は基本的にステートレスです。つまり、WebサーバーからブラウザへHTMLが送られ、ふたたびブラウザからWebサーバーへデータがポストされても、Webサーバーから見ればそれは全く新規のお客さんです。

これでは困るので、セッションというものを張り、ふたたびブラウザからWebサーバーへデータがポストされた時、Webサーバーは、あぁ、あなたね。って覚えておいてくれるわけです。だからセッション変数に値を記憶しておくことができます。

Session.Abandonを実行することにより、セッションは解除されます。
> Session.Abandon()
> Session("aa6") = b
> Label1.Text = Session("aa6")
上のコードがうまく動くのは、まだWebサーバー上に留まってプログラムの処理をしているからでしょう。

> Response.Redirect("aa.aspx")

この命令は、ブラウザに対して、aa.aspxへ自分の力で移動しろと言っています。この命令を受けて、ブラウザは自分の力でaa.aspxへ移動しようとして、Webサーバーへリクエストを出します。この段階で新しいセッションが始まります。新しいセッションなので、Session("aa6")はどこにもありません。
trapemiyaさんありがとうございます。

昨日もいろいろ教えていただいたし本当に感謝です。

それで少疑問に思ったのですが、どうもASP.NETで
最初にブラウザで起動時にすごく時間がかかるの
ですがこれはセッションをはりにいったりするか
らでしょうか??
普通にインターネットに接続するより大分遅いん
ですが・・・・
(もしかしたらテスト環境だからかも)
またわかることがあれば宜しくお願いします。
> それで少疑問に思ったのですが、どうもASP.NETで
> 最初にブラウザで起動時にすごく時間がかかるの
> ですがこれはセッションをはりにいったりするか
> らでしょうか??

ASP.NETのプログラムが最初にリクエストされる時にコンパイルが走るので、そのせいじゃないでしょうか?2回目からは速くないですか?
またまたお返事ありがとうございます。

> ASP.NETのプログラムが最初にリクエストされる時にコンパイルが走るので、そのせいじゃないでしょうか?2回目からは速くないですか?
お返事ありがとうございます。

>ASP.NETのプログラムが最初にリクエストされる時にコンパイルが走るので、その>せいじゃないでしょうか?2回目からは速くないですか?

最初にリクエストされる時にコンパイルが走るというのは
セッションが一度切断されてまた接続するたびにコンパイル
されるということでしょうか?
それともページを配置して一番最初にアクセスしたときのみ
コンパイルされるのでしょうか?

症状としてはたしかに一回起動してしまえばブラウザを閉じる
まではぼちぼち早いのですが、いったんブラウザを閉じてまた
立ち上げると遅くなってしまいます。

またわかることがあれば宜しくお願いします。
trapemiyaさんのおっしゃる通り
確かに2回目から早くなっているみたいです。
初期起動時に遅いのはどうやらプロキシの
設定を検出しているからみたいです。

毎度ありがとうございます。

では
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板