• 締切済み

ASP.NETで画面の初期化される(IsPostBackがFalseと

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)については事象発生しないケースもあり、社内システムが直接関わっているかは断定できない状況です。 ただ社内システム以外のページを最初に開き、同様の操作を行っても事象は発生していません。 上記と同様の事例やその他何か考えられる事がございましたら、宜しくお願いします。

みんなの回答

  • nmktksk
  • ベストアンサー率36% (75/208)
回答No.3

(4)開発環境で、デバッグし動作確認しようとしたが、事象は発生しなかった。 IISの「接続のタイムアウト」以上の時間そのままにして再読み込みするとどうなりますか?

sadk
質問者

お礼

ご回答ありがとうございます。 開発環境でIISの「接続のタイムアウト」を1分に変更し、 1分以上放置して操作しても、事象は発生しませんでした。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

> (POSTメソッドで送信しており、必ず は True となるはず) POSTでもASP.NETがポストバックと認識しなければ、IsPostBack = Trueとならない。 正常時と異常時でポスト変数に違いがあるか? CookieのSessionIDは途切れていないか?

sadk
質問者

お礼

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

  • nmktksk
  • ベストアンサー率36% (75/208)
回答No.1

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

sadk
質問者

お礼

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

sadk
質問者

補足

先ほど確認したところ、 社内システムのリロードが無くても、頻度はかなり低いですが、 事象が発生しました。 また、window.openで別ウィンドウでの展開でなく、 社内システムと同一ウィンドウ内にそのままページ遷移して表示し、 操作しても、事象が発生しました。 何か考えられますでしょうか?

関連するQ&A