自分のサイトを閲覧しているユーザーの数を表示する必要があります。このサイトはiis7で実行されており、asp.net3.5を使用しています。
アクティブなセッションの数は良い方法ですか?数値は非常に正確である必要はありません。
履歴は必要ありません。現在「オンライン」になっているユーザーの数を知り、それをページ自体に表示したいだけです。
これにはWindowsパフォーマンスカウンターを使用できます(perfmon)
ASP.NETアプリケーション>セッションアクティブカウンター。
System.Diagnostics名前空間を使用して、これらのパフォーマンスカウンターにアクセスできます。
このコードは私のために働いた:
PerformanceCounter pc = new PerformanceCounter("ASP.NET Applications",
"Sessions Active", "__Total__", "MYSERVERHOSTNAME.domain");
while (true)
{
Console.WriteLine(pc.NextValue());
System.Threading.Thread.Sleep(1000);
}
私はこの問題を抱えていたので、カウンターが高すぎると思われる場合はここを見てください:http ://support.microsoft.com/kb/969722
一般的な原則として、オンラインのユーザー数の意味を定義する必要があります。
たとえば、セッションは通常、30分などの事前定義された期間継続します。ユーザーがサイトにいると予想される時間によっては、セッションの期間は、ユーザーがサイトにいないときのアイドル時間に大きく起因する可能性があります。
一般に、過去n分間にオンラインになっている人が必要です。セッションは、この統計を1期間(構成されたセッションの有効期限)提供しますが、より関連性が高い可能性のある他の多くの時間測定値があります。
これを実現する1つの方法は、IISログに、ローカルファイルシステムではなくデータベース内のテーブルにデータを格納させることです。これは、Webサーバーレベルで構成するのは非常に簡単です。
次に、それを簡単にグラフ化して、1日、現在、毎週などの使用状況を表示できます。
もちろん、トラフィックの多いサイトがある場合は、膨大な量のデータが収集されることになります。
EPiServer Webサイトの場合は、Live Monitorを確認することをお勧めします:http ://www.episerver.com/add-on-store/episerver-live-monitor/