おそらく多くの ASP 開発者は、セッション中に理由もなくセッションが失われるという状況に遭遇するでしょう。つまり、SessionID が失われると、同じセッションレベルの変数も失われます。
セッション損失の原因の多くは、プログラムが正しくないか、仮想ディレクトリ構造が正しくないことが原因です。
SessionID は以下の理由により変更されます。
理由 1:
Netscape のブラウザは、「/App/user.asp」と「/app/user.asp」を 2 つの異なるプログラムであると認識します。新しいセッション (新しいセッション) が自動的に開始されます。したがって、Web サイトでは大文字と小文字を統一する必要があります。
理由 2:
もう 1 つの理由は、Session.Timeout の値です。
Timeout この属性は、セッションのタイムアウトを 1 分単位で設定するために使用されます。ユーザーがタイムアウト以内にページを更新またはリクエストしない場合、セッションは終了します。ページを再度リクエストすると、新しいセッションが開始されます。
タイムアウトの値が分単位であることを確認してください。
形式: Session.Timeout [= nMinutes]
理由 3:
ユーザーがブラウザの cookie をオフにすると、当然セッションは維持できなくなります。セッションの保持は Cookie に依存するためです。セッションの
状態
を維持するには、ブラウザが Cookie をサポートしており、開いている必要があります。もちろん、他の方法を使用することもできます 理由 4:
よくある間違いは、間違ったディレクトリ構造を作成することです。次のディレクトリ構造のようになります:
root with global.asa
virtual_root without global.asa
another_virtual_root without global.asa
2 つの仮想ルート ページを呼び出すと、同じ global.asa (ルート) が実行されます)
別のディレクトリ構造:
root には global.asa がありません
virtual には global.asa が配置されます
another_virtual_root と別の global.asa が配置されます
異なるディレクトリにある各 global.asa は、もちろんコードが異なります。ただし、内部のコードが同じである場合は、それについて言及しないでください。 :)
そのため、異なるディレクトリにあるページをリクエストすると、異なる global.asa が実行されます。さまざまな変数が呼び出され、さまざまなセッション ID が作成されます...以前の有用な情報はすべて破棄されます。
以下に詳しく説明します:
最初に子仮想アプリケーション(子仮想アプリケーション)のページを参照し、次に子仮想アプリケーションの親仮想ルート(親仮想ルート)のページを参照した場合。これらの変数は失われ、破棄されます。以下のテーブルを見てください使用スキル
4. ASPセッションの簡単な例
5.
ASPでのセッションの詳細な紹介
以上がASP セッション損失の問題を解決する方法を教えますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。