プログラムのデバッグでは、使用されているセッション変数の数とその価値が何であるかを知る必要がある場合があります。セッションオブジェクトはコンテンツと呼ばれるコレクションを提供するため、...各ループを通して目標を達成できます
DIM STRNAME、iloop
session.contentsの各strnameについて
Response.write strname& - &session.contents(strname)&[br]
次
通常の状況では、上記のコードはうまく機能します。ただし、セッション変数がオブジェクトまたは配列である場合、印刷の結果が正しくありません。 これにより、次のようにコードを変更します。
'最初に、いくつのセッション変数が使用されているかを確認しますか?
response.writeがあります&session.contents.count&_
セッション変数<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.tim eout = 60。第三に、セッションは特定のWebアプリケーションに関連しています。ユーザーが /products/default.aspから/jobs/default.aspにブラウズする場合、セッションの作成を引き起こす可能性もあります。 もはや必要としないがセッションを失敗させないセッション変数をクリアする方法は? ASP3.0:session.contents.remove変数名をクリアして変数を削除できます。 ASP2.0で:セッション(変数名)= nullを設定して変数を削除します。 ASP3.0では、session.contents.removeallは、上記のメソッドからすべてのセッション変数をクリアできます。 ASPページの上部はどういう意味ですか? IISは、セッショントラッキングと呼ばれるテクノロジーを使用して、各ページで各セッション変数が利用可能であることを確認します。ユーザーが特定のASPページにアクセスすると、IISは最初にこのページの各セッション変数を準備します。これはもちろんパフォーマンス効果があります。 (セッション変数を使用するコストは常に非常に高いです!)100ページがあり、セッションに5ページしか使用されていない場合、全体的なパフォーマンスには5ページに設定する必要があります。
<%@ enablessessionState = true%>
および他のページは次のように設定されています:
<%@ enablessessionState = false%>