- PR -

ASP.NET フレームセット使用時のセッション

投稿者投稿内容
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-02-03 14:27
別アプリにするとか。
b-max
常連さん
会議室デビュー日: 2003/02/05
投稿数: 26
投稿日時: 2006-02-03 20:27
ユクヒロです。

>別アプリにするとか。
これ、どういう意味でしょうか?
まさか、アプリケーションプールを分離する。あるいは、WEBアプリケーションフォルダを分離する、との意味ですか?
実装からするとありえないですよね、それは。業務画面A、業務画面Bを分離するなんて。。。
違う意味であれば、どういう事なのか、もう少し具体的に説明して頂ければ助かります。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-02-04 09:12
引用:

b-maxさんの書き込み (2006-02-03 20:27) より:
ユクヒロです。

>別アプリにするとか。
これ、どういう意味でしょうか?
まさか、アプリケーションプールを分離する。あるいは、WEBアプリケーションフォルダを分離する、との意味ですか?
実装からするとありえないですよね、それは。業務画面A、業務画面Bを分離するなんて。。。
違う意味であれば、どういう事なのか、もう少し具体的に説明して頂ければ助かります。


ASP.NETで作成したアプリケーションのセッションは、プロジェクト毎に分離されています。メニューと業務処理を別のプロジェクトに分離し、それを一つのフレーム内に表示すれば、事実上メニューと業務処理は別のセッションで動作する事になります。子画面を別プロジェクトにすれば、子と親は別のセッションに属することになります。もちろんSesssionを使ったデータの共有は出来ないので、その部分は独自に作りこむ必要があるわけですが。
b-max
常連さん
会議室デビュー日: 2003/02/05
投稿数: 26
投稿日時: 2006-02-06 22:03
甕星さん、こんばんは。ユクヒロです。

甕星さんのご指摘事項は、十分に承知しております。
私が困っていることは、子画面同士が同じセッションIDとなってしまうことです。
構成的には以下の通りです。
Aプロジェクト−−−メニュー画面
Bプロジェクト−−−サブシステムのα業務画面、β業務画面
メニューから、α業務画面、β業務画面をそれぞれ別ウィンドウでオープンするのですが
α業務画面、β業務画面のセッションIDが同一になってしまうことへの回避方法を探しております。私個人的には、α業務画面、β業務画面それぞれのIEプロセスを別々にすることしか思いつきません。他にもっと良い方法はないものかと思い質問をさせて頂いております。



なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2006-02-08 01:14
引用:

b-maxさんの書き込み (2006-02-06 22:03) より:
Aプロジェクト−−−メニュー画面
Bプロジェクト−−−サブシステムのα業務画面、β業務画面
メニューから、α業務画面、β業務画面をそれぞれ別ウィンドウでオープンするのですが
α業務画面、β業務画面のセッションIDが同一になってしまうことへの回避方法を探しております。私個人的には、α業務画面、β業務画面それぞれのIEプロセスを別々にすることしか思いつきません。他にもっと良い方法はないものかと思い質問をさせて頂いております。


同じセッションになってはまずい構造なのであれば別アプリケーションにすべきでしょうし、
同じWebアプリケーションにするのなら、セッションは同一でも困らないつくりにしておくべきでしょう。
で、別インスタンスのIEを立ち上げるってのは、Webアプリケーションレベルではいい方法とはいえないでしょう。
※どうやってやるつもりなのか、てのもあります。
b-max
常連さん
会議室デビュー日: 2003/02/05
投稿数: 26
投稿日時: 2006-02-08 21:32
引用:


同じセッションになってはまずい構造なのであれば別アプリケーションにすべきでしょうし、同じWebアプリケーションにするのなら、セッションは同一でも困らないつくりにしておくべきでしょう。
で、別インスタンスのIEを立ち上げるってのは、Webアプリケーションレベルではいい方法とはいえないでしょう。
※どうやってやるつもりなのか、てのもあります。



なちゃさん、こんばんは。ユクヒロです。

つまりは、設計で回避出来る!ということですね?
同じセッションID=同じセッションメモリ空間を共有するので
同一のセッションキーを各業務画面で使用しない設計にすることが望ましいということですね。でも、同じ意味合いのセッションキーを重複しない一意なキー命名規則を検討しないといけないですね。
例えば画面IDを格納するセッションキーがあった場合
□α画面では、Session("GuiIDxxx")
□β画面では、Session("GuiIDxxx")
例として、「xxx」部に、重複しない一意なキーとなる命名規則を考える必要があります。皆さんは、どのように設計してるんだろうか?



かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-02-08 21:54
うちでは各ページでなんというセッション変数を使っているか
申告させてかぶらないように管理しています。

そもそも、各ページでそんなに大量にSession変数って使わない
(使わないほうが良い)ですよね

HashTableをセッション変数に格納して
セッション変数の名前をそのページとかにすればまずかぶら無そうだけど
良いか悪いかはわからないけど。。。
コード:
  Dim PageSession As New HashTable
  PageSession("aaa") = "aaa"
  Session("ページの名前") = PageSession

b-max
常連さん
会議室デビュー日: 2003/02/05
投稿数: 26
投稿日時: 2006-02-09 20:40
ユクヒロです。
>HashTableをセッション変数に格納して
この方法は、私が記述した例よりも何倍もすぐれています。
少なくても私はそう思います。
もっと良い設計があるか、検討してみたいと思います。
ありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)