- - PR -
[ASP.NET]Postした結果が正しく返ってこない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-03-22 16:58
みなさんこんにちは
今回は皆様にお知恵をお借りしたく書き込みをさせていただきました。 現在以下の環境でWebアプリを構築していますがある拠点でPostした 結果がPostbackやエラーではなく初期化されたものが返ってきます。 (Page_loadでIsPostbackがfalseの状態) 個人的にはなんらかの原因でセッションが切れてしまったのではないかと 思うのですが、もし違う原因や調査方法がありましたらご教示お願いいたします。
| ||||
|
投稿日時: 2004-03-23 02:17
「ある拠点」といっているのは「期待通りの動作をするクライアントもある」
ということですか?「セッションが切れてしまった」と判断した理由はなんですか? どんな実装をしているのかもう少し詳しく書くとわかりやすいと思いますが。 もしかしてですが、サーバー名にアンダースコア(_)は入っていませんか? これが入っているとIEは(特定のパッチをあてると)クッキーをブロックします。 すなわちセッション管理ができません。以下のの真ん中あたりに記載されています。 http://support.microsoft.com/default.aspx?scid=kb;ja;325192 #全然ちがったらごめんなさい | ||||
|
投稿日時: 2004-03-23 11:33
べる様ご返答ありがとうございます。
>「ある拠点」といっているのは「期待通りの動作をするクライアントもある」 >ということですか?「セッションが切れてしまった」と判断した理由はなんですか? >どんな実装をしているのかもう少し詳しく書くとわかりやすいと思いますが。 すみませんくわしい説明を追加いたします。 今回現象のおきたクライアントですが通常は問題なく動くのですが稀に今回のような現象が 発生します。 ・同じ拠点には別のクライアントはありません。 ・別の拠点では今回のような現象は発生していません。 通常はサーバ側で問題があると「サーバがみつかりません」もしくはページは中途半端に 表示されると認識しています。また今回の現象はPostの結果があたかも別のセッション で処理が開始されたかのように初期画面が表示されたのでPost時にセッションが切れて おかしくなったかと推測いたしました。 実装部分ですが、おおざっぱに書くと以下のようになります。 1)「保存」ボタン押下 2)カスタム入力検証でマスターDBに入力したコードが登録されているかチェック 3)「保存」ボタン押下イベントで確認メッセージを表示するメソッドを呼び出し 4)Visibleがfalseに設定しある確認メッセージ部分にメッセージを設定してVisible をtrueに設定 4)の処理ですが最初はConfimで処理していたのですがConfimが入力コントロールの上に 表示されるため入力した値が見えないとの顧客の注文から画面に確認メッセージを 埋め込み対応しています。 またPage_Loadの処理は以下のようになっています。
サーバ名の件ですがアンダースコア(_)は入っておりません。 ただこの情報は知らなかったので今後は気をつけたいと思います。 貴重な情報ありがとうございます。 | ||||
|
投稿日時: 2004-03-23 12:29
こんにちは。
直接の解にはならないと思いますが、セッションが切れているかどうかはSession.IsNewSession(またはSessionID)を見れば分かります。 Global.asaxのBeginRequestイベントではSessionオブジェクトが利用できない(と私のメモにあるが、怪しいかも..)ので、エラーとなる該当のページのOnLoadなどにテキストファイルやDBにSessionIDをアクセスログとして記録して、該当のエラーが出る前と、出た後のIDが異なっていればセッションが切れている、と判定できると思います。 # ある拠点だけ、というお話なのでネットワークが瞬断してクライアントIPが # 変わっていたり、とかはないですよね? # クライアントIPもログとして取っておくと良いかもしれません。 | ||||
|
投稿日時: 2004-03-23 16:36
KEN@様ご返答ありがとうございます。
アドバイスの通りログを取ってしばらく様子をみることにします。 今回の現象も含めて「ページがみつかりません」や「途中半端にページが表示される」 など原因と対策をじっくり調査してみるつもりです。 また皆様にお知恵を借りることになるかもしれませんがよろしくお願いいたします。 | ||||
|
投稿日時: 2004-03-23 21:44
みなさま、こんにちわ
現在以下の環境でWebアプリを構築しています。 377KBのエクセルからHTMLに変換してOWCのスプレートシート(OWC11)を画面に貼り付ける という処理を行っているのですが そこで、困った事に ボタンイベントを発生させると Page_loadでIsPostbackがfalseの状態になってしまいます。 エクセルのサイズが小さいとこの現象は起きません。 IISのprocessModel設定(Machine.configファイル内)など 変えてみたのですが、上手くいくません。 なにか情報をおもちの方、いらっしゃいましたら 御教示よろしくおねがいしたします。 サーバー 開発環境 : ASP.NET(VB.NET2003) OS: WINDOWS SERVER2003 DB: SQL SERVER2000 クライアント OS: WINDOWS XP OFFICE: 2003 IE: 6.0.2800.1106.xpsp2.030422-1633 |
1