オンライン ユーザーをカウントし、それを常にホームページに表示する必要がある Web サイトを作成します。すぐに使えるモジュールを適用することに興味はありません。これが私がすでに行ったことです:
プロジェクトに Global.asax ファイルを追加する
Global.asax ファイルに次のコード スニペットを記述します。
void Application_Start(object sender, EventArgs e)
{
Application["OnlineUsers"] = 0;
}
void Session_Start(object sender, EventArgs e)
{
Application.Lock();
Application["OnlineUsers"] = (int)Application["OnlineUsers"] + 1;
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
Application.Lock();
Application["OnlineUsers"] = (int)Application["OnlineUsers"] - 1;
Application.UnLock();
}
実際には正常に動作しますが、次のバグが見つかりました: --> ユーザーがブラウザーを閉じても、セッション タイムアウトがまだ生きているため、実際のオンライン ユーザー数は表示されません!
セッションのタイムアウト間隔を変更する以外に解決策はありますか?