3

お客様が Windows 2003 から 2008R2 に移行したときに、古い ASP+COM アプリケーションを更新する必要がありました。このプロセスは 100% 無痛ではありませんが、成功しましたが、1 つの問題が残っています。アプリケーションは、セッション状態、または少なくとも、セッションの COM オブジェクトを保存するセッション変数をランダムに失うようです。

基本的に、アプリは次のように機能します。

ログイン フォーム ページ -> ログイン ページ (オブジェクトが作成され、Session("MyObject") に保存され、ユーザー資格情報がチェックされます -> 最初の実際のアプリケーション ページ (Session("MyObject") がコードの上部でチェックされます)。

2 番目のリダイレクトは、資格情報が正しい場合にのみ発生しますが、オブジェクトは常に作成されます。

ただし、ユーザーは、資格情報を入力した後、ログオン フォーム ページに頻繁にリダイレクトされると報告しています。

調査の結果、アプリケーションはログイン ページを適切に通過し、COM オブジェクトのインスタンスを作成して最初のアプリケーション ページにリダイレクトするようです。そして、セッション変数が再び空になるため、ユーザーはログイン フォームに戻されます。

さらに、これは体系的ではないということです。問題はかなり頻繁に発生しますが、常に発生するわけではありません。起動すると、ユーザーは通過する前に 2 ~ 3 回ログオンする必要があります。アプリケーションがリサイクルされると、通常は問題がしばらく解決されますが、これは体系的ではなく、常に必要であるとは限りません。

ここで何が起こっているのか誰にも分かりますか?

編集:いくつかの追加情報:

  • ASP セッション処理がアクティブです
  • コードのどの部分も、エラーが黙って抑制されているわけではありません。COMオブジェクトまたはユーザーがキャッチできる場所で発生した場合は、ログファイルに移動します。
  • COM オブジェクト ログ ファイル、IIS ログ、またはサーバーのイベント ログにエラーは見られません。
  • ProcMon を使用してプロセス アクティビティを追跡しても、特別なことは何も見つかりませんでした。
  • COM オブジェクトのログ ファイルを見ると、COM オブジェクト インスタンスが作成され、ログイン ページから "LoginUser" メソッドが呼び出されて正常に返され、次に最初のアプリケーション ページが呼び出され、格納されているオブジェクトの存在がチェックされていることがはっきりとわかります。セッションで失敗しました。
  • 単一の Web サーバーがあり、サーバー ファームはありません。
4

2 に答える 2

2

過去にまったく同じことをしたASP Webサイトがありました。ログ ファイルをチェックして、このアプリケーションまたは Web サイトが独自の専用アプリケーション プールで実行されているかどうか、および不正なコードが原因でアプリケーション プールが自動リサイクルされていないかどうかを確認する必要があります。セッションが作成されてから削除される場合は、最初のセッション値を別のセッションに渡します。たとえば、Session("MyObject2") をメイン ページで確認します。ユーザーがまだログオフしている場合は、リダイレクトの無限ループなどの失敗が多すぎるために、アプリケーション プールがリサイクルされていると確信しています。

編集:もう1つ。MS Access で ASP を使用しているときに、このようなエラーをよく見かけましたが、それを理解することはできませんでした。

于 2013-01-19T06:44:13.787 に答える
0

デバッグの演習として、セッションOnStart、OnEnd、およびabandonを含むASPセッションイベントからの情報をログに記録したくなるでしょう。たぶん、リクエストからできるだけ多くの情報を取得してから、セッションの特定のライフサイクル/ページフローを計算し、セッションが終了または中止されたときに発生する共通点があるかどうかを判断します。

また、Session_OnEndイベントを検索しているときに、IIS7.0での動作がおかしいことを示唆する記事に出くわしました。http://blogs.iis.net/lprete/archive/2009/01/04/session-onend-classic-aspを参照してください。 -and-iis-7-0.aspxこれが役立つかもしれない場合に備えて。

幸運を。

于 2013-01-24T08:56:19.303 に答える