プログラムのデバッグでは、使用されているセッション変数の数とその価値が何であるかを知る必要がある場合があります。セッションオブジェクトはコンテンツと呼ばれるコレクションを提供するため、for ... dim strname、iloop、iloopを通じて目標を達成できます。
session.contentsの各strnameについて
Response.write strname& " - "&session.contents(strname)& "<br>"
一般に、上記のコードはうまく機能します。ただし、セッション変数がオブジェクトまたは配列である場合、印刷の結果が正しくありません。このようにして、次のようにコードを変更します。「まず、セッション変数がいくつ使用されているかを見てください。応答。
「セッション変数<p>」」
DIM STRNAME、iloop
'それぞれを使用して、session.contentsを確認します
'セッション変数が配列の場合は?
ISARRAY(セッション(strname)の場合
'円形の印刷アレイの各要素
iloop = lbound(session(strname))からubound(session(strname))の場合
Response.write strname& "("&iloop& ") - "&_
セッション(strname)(iloop)& "<br>"
次
それ以外
'他の場合には、変数の値を単純に印刷するだけです
Response.write strname& " - "&session.contents(strname)& "<br>"
ifを終了します
次のセッション変数が機能しない場合がありますが、なぜですか?多くの可能性があります:
まず、クライアントがCookieの操作を許可しない場合、セッションは失敗します。セッションはCookieに依存しているためです。
第二に、セッションには失敗時間の設定があります。デフォルト設定は20分です。このように変更できます:Web Diretory-> Properties-> Virtual Directory-> Application Settings-> Configuration-> App Options-> Session TimeOutOut
またはASPで、そのようなコードを書きます:session.timeout = 60。
第三に、セッションは特定のWebアプリケーションに関連しています。ユーザーが /products/default.aspから/jobs/default.aspにブラウズする場合、セッションの作成を引き起こす可能性もあります。もはや必要としないがセッションを失敗させないセッション変数をクリアする方法は? ASP3.0で:
session.contents.remove "variable name"
変数を削除できます。
ASP2.0で:
セットセッション( "変数名")= null
変数をクリアできます。
Asp3.0で、
session.contents.removeal
すべてのセッション変数とセッションをクリアできます。上記の方法では、現在のセッションが期限切れになりません。 ASPページの上部の<%@ enableSsessionState = true%>は何を意味しますか? IISは、セッショントラッキングと呼ばれるテクノロジーを使用して、各ページで各セッション変数が利用可能であることを確認します。ユーザーが特定のASPページにアクセスすると、IISは最初にこのページの各セッション変数を準備します。これはもちろんパフォーマンス効果があります。 (セッション変数を使用するコストは常に非常に高いです!)
セッションに100ページがあり、5ページのみが使用されている場合は、全体的なパフォーマンスには、5ページに設定するだけです。
<%@ enablessessionState = true%>
その他のページは次のように設定されています。
<%@ enablessessionState = false%>