4

StateServer を使用しているときにアクティブなユーザーの数を確認するにはどうすればよいですか? また、StateServer にクエリを実行して、セッション状態の内容を取得することはできますか?

バッキング ストアに SqlServer を使用する場合、これがすべて可能であることはわかっていますが、それらをメモリ内に配置したいと考えています。

4

2 に答える 2

7

ステート サーバーでアクティブなセッションの数は、ステート サーバーを実行しているサーバーのパフォーマンス カウンターで簡単に確認できます。これは、アクティブなユーザーとは直接関係ありません (セッション タイムアウト時間のため)。

アクティブなセッションのカウンターは次のとおりです。"Asp.net" - "State Server Sessions Active"

参考までに、 http://msdn.microsoft.com/en-us/library/fxk122b4.aspxの State Server 関連のすべての perfmon カウンターを次に示します。

State Server Sessions Abandoned 明示的に放棄されたユーザー セッションの数。これらは、ブラウザーを閉じる、別のサイトに移動するなど、特定のユーザー アクションによって終了するセッションです。このカウンターは、状態サーバー サービス (aspnet_state) が実行されているコンピューターでのみ使用できます。

State Server Sessions Active 現在アクティブなユーザー セッションの数。このカウンターは、状態サーバー サービス (aspnet_state) が実行されているコンピューターでのみ使用できます。

State Server Sessions Timed Out ユーザーが操作を行わなかったために非アクティブになったユーザー セッションの数。このカウンターは、状態サーバー サービス (aspnet_state) が実行されているコンピューターでのみ使用できます。

State Server Sessions Total プロセスの有効期間中に作成されたセッションの数。このカウンターは、State Server Sessions Active、State Server Sessions Abandoned、および State Server Sessions Timed Out の合計値です。このカウンターは、状態サーバー サービス (aspnet_state) が実行されているコンピューターでのみ使用できます。

于 2010-01-20T21:53:36.427 に答える
0

ユーザー数の追跡は、セッション レベルではなく、アプリケーション レベルで行う必要があります。

次の方法で、現在セッションにあるものを確認できるはずです。

StringBuilder builder = new StringBuilder();
foreach ( String key in Session.Contents ) {
    builder.AppendFormat("{0}: {1}<br />", key, Session[key]);
}
Response.Write(builder.ToString());
于 2008-10-29T22:33:25.270 に答える