- PR -

フレーム分けした子画面にセッション変数を渡す方法

投稿者投稿内容
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2006-01-31 22:12
セッションIDが同じなら、甕星さんもかかれてますが、
まず確認すべきは設定と取得のタイミングです。
※すでに確認されているようにも見えなくもないのですが、
 実際にどうなっているのかがどうもよく分かりません。

本当に、設定→取得のタイミングが正しく起こっていますか?
もしまだやっていなければ、ブレークポイントなどで一度確認してみてはどうでしょう?

既に確認済みで確かに正しく動いているということならこの話はなかったことに…
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-01-31 22:18
引用:

PG新人さんの書き込み (2006-01-31 14:07) より:

フレームを使用した画面については、
ローカルホストで実行するとセッション情報は消えません。
しかし、サーバーに環境を作りクライアント側で実行すると消えてしまいます。


これって気になりますね...
サーバ名にアンダーバーとか入ってないですよね
あと、IPアドレスで接続したらどうなりますか?
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2006-01-31 22:23
引用:

かるあさんの書き込み (2006-01-31 22:18) より:
サーバ名にアンダーバーとか入ってないですよね
あと、IPアドレスで接続したらどうなりますか?


SessionIDが同じってことからセッションが分かれてしまっていることは
ないのかなと思ったんですが、どうも試してる環境があやふやな気もするので、
この線もあるかもしれませんね…
PG新人
会議室デビュー日: 2006/01/21
投稿数: 18
お住まい・勤務地: 東京
投稿日時: 2006-02-01 11:46
たつごろー様

>SessionIDがどこまでつながっているかを追跡してみてはいかがでしょう
調査したところ、window.openとフレームでは同じセッションIDを使用していました。
またwindow.open前では、セッション変数に値が入っているのですが、
window.open後では、セッション変数の値が消えていました。
セッションIDが同じでセッション変数だけがきれいになくなっていました。。。
またwindow.openのファイルの後に"?"をつけてのパラメータ渡しを行い、
フレームの最初のPage_Load時にそのパラメータをセッション変数に
格納しても、セッション変数の値が消えてしまいます。

かるあ様
サーバ名には、アンダーバーではなくハイフンを使用しています。
またIPアドレスで上記の調査を行っても結果は同じでした。。。

IISでP3PというHTTPヘッダーの設定を行っているのですが、
それが何か関係しているのでしょうか・・・?
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2006-02-01 12:08
引用:

調査したところ、window.openとフレームでは同じセッションIDを使用していました。
またwindow.open前では、セッション変数に値が入っているのですが、
window.open後では、セッション変数の値が消えていました。
セッションIDが同じでセッション変数だけがきれいになくなっていました。。。



変数がなくなったことを確認した手段はどういうものでしょうか。
きれいに無くなったのか、取得に失敗なのか、表示に失敗なのかで切り分けたいところです。


引用:

またwindow.openのファイルの後に"?"をつけてのパラメータ渡しを行い、
フレームの最初のPage_Load時にそのパラメータをセッション変数に
格納しても、セッション変数の値が消えてしまいます。


セッション変数に格納した直後に消えてるということですか?

_________________
たつごろー
codeseek
こみゅぷらす
PG新人
会議室デビュー日: 2006/01/21
投稿数: 18
お住まい・勤務地: 東京
投稿日時: 2006-02-01 12:38
たつごろー様

お世話になります。

確認した手段は、response.writeで画面自体にセッション変数を表示しました。
先ほど、何回か動かしたところ、セッション変数の値が取得できる場合と
出来ない場合があります。取得できる場合と出来ない場合は、まちまちです。

>セッション変数に格納した直後に消えてるということですか?
格納直後は、消えていません。
2番目のPage_Load時には、セッション変数の値が消えてしまいます。
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2006-02-01 13:39
まず、どこまで正しく値を保持しているかを追及して、原因を見つけ出しませんか?

引用:

確認した手段は、response.writeで画面自体にセッション変数を表示しました。
先ほど、何回か動かしたところ、セッション変数の値が取得できる場合と
出来ない場合があります。取得できる場合と出来ない場合は、まちまちです。



Response.Write()では取得したことを確認するには不十分かと思います。
ステップ実行をして値を確認するか、Debug.WriteLine()で出力してください。
複雑な画面では、ステップ実行をすると再現できない挙動がありますので、
その他のデバッグ機能に頼ることになる可能性も高くなります。

.NET Framework クラス ライブラリ Debug.WriteLine メソッド
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemDiagnosticsDebugClassWriteLineTopic.asp?frame=true

ASP.NETトレースという手もあります。
.NET Framework 開発者ガイド ASP.NET トレース
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconTraceFunctionality.asp

http://www.codeseek.net/dotNet/dotNetTrace.htm

引用:

>セッション変数に格納した直後に消えてるということですか?
格納直後は、消えていません。
2番目のPage_Load時には、セッション変数の値が消えてしまいます。



2番目のPage_Load時というのはどういうときでしょうか。

「消えている」と判断した理由は?
「消えている」のではなく、「入れていない」か「表示できていない」という
可能性も考える必要があるのではないかと思います。

_________________
たつごろー
codeseek
こみゅぷらす
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-02-01 13:46
現在の状況は以下の認識であっていますか?

1.起動ページ → 2.フレームページ → 3.フレームの要素1
                 → 3.フレームの要素2
とあったとして、

1のセッションは1のPostBackでは取得できるが、
2,3では取得できない

2のセッションは2のPostBackでも取得できない
もちろん、3でも取得できない


[ メッセージ編集済み 編集者: かるあ 編集日時 2006-02-01 13:47 ]

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