質問

物事をシンプルにするために、いくつかの aspx ページがあります...

Page1.aspx - セッション情報をリセットします。
Page2.aspx - 結果を含むフォームを検索し、セッション変数を設定します。
Page3.aspx、Page4.aspx、Page5.aspx - Page2.aspx にセッション変数を設定する必要があります

ここでわかっているのは、Page2.aspx が読み込まれてセッション変数が設定されているときに、Page1.aspx が呼び出され、セッションがリセットされているということです。ただし、ブラウザーには Page2.aspx ではなく Page1.aspx が表示されます。この問題が発生していることを確認できたのは、コードをステップ実行して Page1.aspx と Page2.aspx の Page_Load イベントにブレーク ポイントを設定したときだけでした。そして、Page1.aspx が処理を停止するとすぐに Page2.aspx が処理されていることには驚きました。サーバ。

もしかしたら役に立つ情報かも…マスター ページを使用しており、マスター ページには Page1.aspx へのリンクがあります。それ以外には、コード ベース内に Page1.aspx への参照が見つかりません。

アップデート:
認証が原因かも?Page2.aspx にアクセスすると、サーバーが Page1.aspx で再度認証を行っている可能性があります。それは典型的なことでしょうか?

役に立ちましたか?

解決

先端アンドリューいただきありがとうございます。

私たちは何が起こっていたかを考え出した...アプリケーションでPage1.aspxは本当にDefault.aspxのです。 Page2.aspxに、別の開発者は、srcプロパティが定義されていなかったページにimgタグを置きます。 Page2.aspxが実行されたときにそう、それがWebサイトのルートレベルにある画像を探していた、これは、Default.aspxの(ページ1)上のコードをトリガーし、セッションを拭いています。

全体的にはこのような何かを見て...

にPage2.aspxオン

<img src=""> <!-- this ended up triggering a call to Default.aspx, wiping the session -->

うまくいけば、それは他の誰かを助けます。

他のヒント

フィドラーを起動し、正常にアプリケーションを実行します。それはあなたに発生しているトラフィックを伝え、ページが他のページにリダイレクトされているものを識別します。あなたが道を知ったら、そのパスは、ソースコードを調べることによって存在する理由、あなたが識別できます。

これは、アプリケーションドメインがリサイクルされている可能性がありますので、すべてのセッション変数が失われ、セッション変数が欠落している場合は、おそらく右、コードリダイレクト訪問者がありますか?

このような場合は、

、クイックフィックスとして、あなたはは、StateServerを使用するか、SQL Serverのセッション変数を格納することができます。アプリケーションドメインは毎分をリサイクルするべきではありませんが、それはあなたがデフォルトである「プロセス中」のセッションを保存している場合は、参照動作を引き起こす可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top