プロが教える店舗&オフィスのセキュリティ対策術

ASP.NETで画面の初期化される(IsPostBackがFalseとなる)事象について

お世話になります。
ASP.NETで開発したWebシステム(以下、当システム)で、処理ボタンを押すと画面が初期化される
事象が発生しています。
(正確には、Page_LoadイベントでIsPostBackが何故かFalseとなり、初期化処理を通過してしまう事象です。)
通常は上記事象は発生しないのですが、Windows 2000だと発生頻度は高いようです。
原因がどうしても判明できず、ご質問させて頂きました。

-----

[動作環境]
<クライアントPC>
Windows 2000 Professional/XP Professional
IE6.0

<サーバー>
Windows Server 2003
IIS6.0
ASP.NET2.0 (.Net Framework 2.0)


[開発環境]
VS2005
VB ASP.NET Webアプリケーション

-----

事象について詳しく確認してみたところ、以下が判明しています。

(1)クライアントPCで、最初に別の社内システムのページを開き、その後お気に入りのリンクより
 当システムを同一ブラウザウィンドウ内に開いた後、自動的に別ウインドウ(IEのアドレスバーや
 メニュー無しの状態)で開かれた後、処理ボタンを押すと画面が初期化される事象が発生する。
 (発生しないときもある)
 最初から当システムのページを開き、自動的に別ウインドウで開かれた後、処理ボタンを押す操作
 では今まで1度も事象が発生していない。
 (別ウインドウで開く動作は、Javascriptのwindow.openで開いている)
 社内システムと当システムは、同一サーバー(同一サイト)内で動作している。
(2)上記の社内システムでは、数分間隔で自動リロード処理が走り、ページがリロードされる仕様と
 なっている。
 上記ページリロード後に、上記操作により事象が発生していた。
 試しに社内システムのページを開き、IEの更新ボタンを押して手動で再読み込み後に、同様の操作
 を行うと事象が発生した。
 社内システムでリロード無しで、当システムのページを開いても事象は今まで発生していない。
(3)当システムでトレースログを出力し、事象発生時の動作を確認したところ、処理ボタン(サーバー
 コントロール)でのポストバック時に、Page_Loadイベントで何故か IsPostBack が False となり、
 画面初期処理(初期化ロジック)を通過してしまっていることが判明。
 (POSTメソッドで送信しており、必ず IsPostBack は True となるはず)
(4)開発環境で、デバッグし動作確認しようとしたが、事象は発生しなかった。

上記(1)(2)については事象発生しないケースもあり、社内システムが直接関わっているかは断定できない状況です。
ただ社内システム以外のページを最初に開き、同様の操作を行っても事象は発生していません。

上記と同様の事例やその他何か考えられる事がございましたら、宜しくお願いします。

A 回答 (3件)

(4)開発環境で、デバッグし動作確認しようとしたが、事象は発生しなかった。


IISの「接続のタイムアウト」以上の時間そのままにして再読み込みするとどうなりますか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

開発環境でIISの「接続のタイムアウト」を1分に変更し、
1分以上放置して操作しても、事象は発生しませんでした。

お礼日時:2010/07/02 18:33

> (POSTメソッドで送信しており、必ず は True となるはず)



POSTでもASP.NETがポストバックと認識しなければ、IsPostBack = Trueとならない。

正常時と異常時でポスト変数に違いがあるか?
CookieのSessionIDは途切れていないか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

ポスト変数(HttpWebRequest)の情報は全て列挙してまで確認していませんが、
ページ上のTextBoxの値をRequest.Paramなどでトレース出力してみると、
正常時では当然取得できていましたが、異常時では取得できませんでした。
CookieのSessionID は確認できていません(Cookieは使用していない為)が、
おそらく期限切れか無効な状態になっているのでは? と考えられます。
ただ、開発環境ではセッションの接続タイムアウト時間を経過しても、
問題無く動作しました。
(当システム内でSession変数を使用して処理していないため)

なぜPOSTされた値を取得できないのか、原因が分かりません。

お礼日時:2010/07/02 18:46

別の社内システムでSessionの初期化処理等行われていませんでしょうか?

この回答への補足

先ほど確認したところ、

社内システムのリロードが無くても、頻度はかなり低いですが、
事象が発生しました。
また、window.openで別ウィンドウでの展開でなく、
社内システムと同一ウィンドウ内にそのままページ遷移して表示し、
操作しても、事象が発生しました。

何か考えられますでしょうか?

補足日時:2010/07/02 16:27
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

すいません、別の社内システムの動作は確認できないのですが、
当システムではSession変数を使用していないため、
初期化処理が行われても問題無く動作可能と考えています。
(使用していなくてもSessionの初期化で何か影響がありますでしょうか?)

お礼日時:2010/07/02 16:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています