6

ASP または ASP.Net セッションのライフ タイム (またはライフ サイクル) の概念について混乱しています。より具体的には、私の混乱は次のとおりです。

  1. IIS は、新しいセッションの開始時と既存のセッションの終了時をどのように決定しますか? 特に、IIS は、リダイレクト コードを呼び出したときに、セッションを継続するか終了するかをどのように決定するのでしょうか?
  2. セッションの有効期限を設定するにはどうすればよいですか? (現在、web.config sessionStateアイテムを介して設定することしか知りません。)
  3. あるセッションが別のセッションの変数にアクセスすることは可能ですか?
4

4 に答える 4

5

セッションは通常、クライアント マシンで一意の識別子を Cookie として生成することによって処理されます。これは通常、セッション Cookie であるため、簡単にはアクセスできません。セッションを使用するサイトにアクセスすると、この Cookie が検索されます。見つからない場合は、新しいセッションを作成して、新しいセッションを作成します。

有効期限を設定する 1 つの方法は web.config です。IIS で設定することもできます。それには、Web サイトのプロパティ -> [ホーム ディレクトリ] タブ -> [構成] ボタン -> [オプション] タブ -> [セッション タイムアウト] に移動します。

他人のセッション データにアクセスすることはできません。

于 2009-06-04T15:06:26.837 に答える
5
  1. リクエストにセッション Cookie が含まれていないか、リクエストに含まれているセッション Cookie がセッションにマップされていないため、セッションが開始されます。セッションは次のように終了します。b)コードによって意図的に中止されました。c) アプリがリサイクルされるなど、プロセスが終了すると、インプロセス セッションが終了します。

  2. タイムアウトを変更するさまざまな方法は、基本的にとにかく web.config を変更するか、値が継承される構成ファイルを変更することです。

  3. セッションオブジェクトが、別のセッションがアクセスできるコードによって意図的に配置されていない限り、そうではありません。

于 2009-06-04T15:09:05.863 に答える
1

AppPool の設定も忘れないでください...デフォルトでは (とにかく IIS 6)、120 分ごとにリサイクルされます。そのため、設定された Session_Timeout 値よりも短い時間で誰かがセッションを失う可能性があります。

于 2009-06-24T21:05:10.400 に答える