仕事でASP.netで作成されたWEBアプリケーションで、
Session変数を使用してページ間のデータの受渡しをしているのですが、
そのSession変数が消えるということが発生しました。

問題が無い時と問題が発生する時があり、
以下の状況で発生していました。

■framesetを使用している。
■IEのCookieの設定の「自動Cookie処理を上書きする」をOFf

いろいろ調査したところ、Microsoftのページにこんな内容が、

Internet Explorer 6.0 で FRAMESET を使用するとセッション変数が失われる


なるほど、framesetを使用するときのsession変数の使用には注意する必要がありますね。


要約としては、

■ASP.netでframesetを使用した場合にsession変数を使用すると
 session変数は保存できるが
 ページが遷移して別のページに移った時にsession変数が消えてしまう場合がある。
■回避方法は以下の2通り
 1.IEのインターネットオプションから、
 「プライバシー」−「詳細設定」−「自動Cookie処理を上書きする」をOnにする。

 2.IEのインターネットオプションから、 
 「プライバシー」−「サイト」から、ページ遷移先のアドレスを追加する。

1.の方法ではセキュリティ面に不安があるため、
2の方法が良いですね。

Microsoftではバグではなく仕様であるとのことです。
まぁ、もともとframesetを使用してのフレーム分割は推奨されていないため、
極力使用しないようにしたいですね。