- - PR -
SessionStateについて
1
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-02-09 16:21
いつも大変に参考にさせていただいております。
以下の記事を参考にし、SessionStateのテストを行っております。 http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp06/entwebapp06_01.html http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp06/entwebapp06_02.jpg 構成としては、jpg画像のように、WindowsのNLB配下にWebサーバーを2台立てております。 その他にStateServerがある状態です。 まずは、2台のWebサーバーのweb.configをInProcからStateServerへ変更しました。 Webサーバー1にて、Sesssion.Add("State1","Webサーバー1にて発行")を行い、 NLBからWebサーバー1を外し(偽障害状態を作る)、Webサーバー2へ振ります。 そのWebサーバー2でSession.Item("State1")を参照しても何も格納されておりません。 そこでもうちょっとわかりやすいように、各ページにSessionIDを表示するようにしました。 上述の手順を踏んでもSessionIDには変化はありません。 さらにもうちょっと詳しく内容を見るために、StateServer管理ではなく、 SQLServer管理に変更しました。 (もちろん、また2台のWebサーバーのWeb.configを書き換えました。) そこで上述の処理を行ったところ、Webサーバー2でSession.Item("State1")を 参照することは同じく出来ませんでした。 が、ASPStateTempSessions.sessionidには、 (共通のSessionID:24バイト)と(8バイトの異なる文字列)でなる32バイト文字列 のレコードが2つ挿入されておりました。 (8バイトの異なる文字列)←これが原因で2台のWebサーバーで Sessionが共有できないのかと推測しております。 実験を重ねてもSessionIDは都度変化しますが、8バイトの部分はWebサーバーが2台なせいか、 2パターンのみで変化がありません。(うまく伝わっているか自信ないですが…。) これがクリアになれば、StateServerでもSQLServerでも動作するのではないかと思うのですが…。 他の記事で、Machine.configの【machineKey】が一致していないと同一とみなさない、 とあったので、それも試しましたが、NGでした。 他に何か心当たりはございませんでしょうか。 そもそも根本的に技術の理解を勘違いしているようなら、そちらもご指摘ください。 どうぞよろしくお願い申し上げます。 | ||||||||||||
|
投稿日時: 2005-02-09 22:48
MSDNを読んでいてふと思ったのですが、アプリケーションエリアを独立させるおまじないを追加していませんか?machineKeyの設定内容が出せるなら、出していただけるとわかるかもしれません。
_________________ | ||||||||||||
|
投稿日時: 2005-02-10 10:33
Jittaさん
アドバイスありがとうございます。 大変申し訳ございませんが、いろいろ調べたものの、どこのことをおっしゃっているのか、 理解できませんでした。 よろしければ、もう少し具体的にご教授いただけませんでしょうか。 ちなみに経過を申し上げます。 Webサーバー1で発行される8バイトの異なる文字列を Webサーバー2で発行される8バイトの異なる文字列に置換した後に、 Webサーバー1をNLBからはずし、Webサーバー2へ振ると予定していた挙動になります。 この8バイトはどこから来るのか今も調査中です。 以上です。 どうぞよろしくお願い申し上げます。 | ||||||||||||
|
投稿日時: 2005-02-10 21:14
MSDNを「セッション状態」でキーワード検索し、「セッション状態」をクリックすると「キーワード検索の結果」に「セッション状態」というトピックがあるので、これを開きます。<machinekey>が同じでなければ云々は、ここに書かれていますね。
一通り目を通すと、<machinekey>がリンクになっているので、クリックします。
これですね。validationKeyは、"AutoGenerate"という値か、自分で指定する値、および"IsolateApps"というオプションを受け取ります。この"IsolateApps"を指定すると、
これを指定していませんか? _________________ | ||||||||||||
|
投稿日時: 2005-02-14 09:51
Jittaさん
ご返信ありがとうございます。
はい、上述の件、全て満たしております。 validationKeyはAutoGenerateではなく、新たに生成したコードとなっております。 "IsolateApps"こちらの指定も行っておりません。ちなみに念のため、入れても試しましたが、 変化はございません。 もし、他に何かご指摘できることがあれば、どうぞよろしくお願い申し上げます。 | ||||||||||||
1
