そのサイトでオンラインにいる人の数を表示する必要があります。このサイトはASP.NET 2.0を使用して開発されています。現在、私はGlobal.asaxでセッション開始(1増加)と終了終了(1減少)を使用しています。しかし、Session_Endイベントは、ほとんどの時間正しく呼び出されません。これを達成するためのより良い方法はありますか?ウェブサイトでオンラインにいる人の数を確認する方法
答えて
私たちはいくつかの方法を試した後、各ユーザのトラッキングアイドル時間で終了します。アイドル時間がセッションタイムアウトを超えた場合、ユーザはオンラインではないとみなします。もちろん、ユーザーのログオフやタイムアウト後に再度ログインするなどの他の問題も考慮する必要があります。
Session_Start
でインクリメントし、使用しない限りSession_End
でデクリメントします。データベースのような他の手段。
リクエストを認証するときに、データベースのタイムスタンプを更新して、ユーザーがアクティブであることを示すことができます。一定の時間(たとえば15分)後に、同時ユーザー数を収集するクエリは、 (したがって、カウントを減少させる)。
急いでGoogle検索でHttpModuleでhandy way of doing thisが公開されました。
全体として、ヨハンはこれで素晴らしい仕事をしました。上記で提案された設定タイムアウトを実装していますが、それ以外の場合は、サーバーのperfmon.exeをチェックし、WebService >> WebAppPoolの現在の接続数をチェックする以外に、これを正確に行う方法はありません。
これを自分で実装したとき、SQL Serverテーブルを使用して日付/時刻と認証に関するユーザー情報を格納しました。私は、データキャッシュをリフレッシュしなければならないときはいつでも(10分ごとに1回)、IPアドレスを再解析して一致させることによってカウントを減らしました。
+1それは非常に健全なアプローチのように聞こえる。 Webサーバーの実装には、SQL Serverをバッキングストレージとして使用する必要があります(セッションストアにVelocityのようなものを使用しない限り)。将来の実験のためにブックマークされています。ありがとう! –
私は以前これを行っており、セッションを手動で破棄した場合にのみSession_Endが呼び出されることを証明できます(Session.Abandon)。あなたがそれについて考えるとき、それは理にかなっています。ユーザーがウェブサイトにいない場合、コードは決して実行されません。
私が行ったことは、ユーザーがサイトで最後に見たときのユーザー名と日時を含むアプリケーション状態でハッシュテーブルを格納していたことです。すべてのページの読み込みのために、私は現在のユーザーのためにこの値を挿入または更新する関数を呼び出します。次に、リスト全体を削除し、セッションタイムアウト(20分など)よりも古いエントリをすべて削除します。このリストを変更するときは、競合状態を避けるためにロックまたは同期を使用することを忘れないでください。
これには、人数を知るだけでなく、特定のユーザーを知るという利点があります。
ユーザー名のような固有のものがない場合は、代わりにSession.SessionIDを使用できます。それはあなたのサイトの訪問者ごとに一意でなければなりません。
しかし、アプリケーションまたはアプリケーションインスタンスの状態変数には、「Webガーデンモード」のプロセス間またはマルチサーバー設定のプロセス間で共有されない問題があるため、注意してください。大規模な設定には、データベースや分散キャッシュなどのより永続的なメディアが必要です。
- 1. 人が多数ウェブサイトでオンラインです
- 2. android.provider.Telephony.SMS_RECEIVEDを聞いている人を確認する方法?
- 3. 外部ウェブサイトのページ数を確認する方法
- 4. Xcode iOs Simulator - ネイティブのウェブサイトがオンラインになる前に確認する
- 5. ユーザーがオンラインかどうかを確認する方法
- 6. ペアデバイスがオンラインかどうかを確認する方法 - Androidプログラム
- 7. インパラでデータベースを作成した人を確認する方法
- 8. ウェブサイトでユーザーアクティビティの値を繰り返し確認する方法
- 9. localhostのウェブサイトをAndroid端末で確認する方法
- 10. コンピュータのオンライン状態を確認する最善の方法は何ですか?
- 11. Cocoa Touchでウェブサイト証明書を確認する方法は?
- 12. メンバー1人でFacebookブックに追加された人の数を確認する
- 13. ウェブサイト上の誰かの身元を確認する方法は?
- 14. ウェブサイトのパスワードとユーザー名を確認する方法
- 15. ウェブサイトで使用されている認証方法を確認する方法は?
- 16. githubで自分のプロジェクトをクローンする人を確認する方法
- 17. ユーザーがC++デスクトップアプリケーションでオンラインかどうかを確認する方法
- 18. 個人のオンラインgitリポジトリを共有する方法
- 19. ホストを正しく確認する方法:Office、OfficeのオンラインとWebブラウザ
- 20. asp.netウェブサイトのライブ訪問者数を確認するには?
- 21. ウェブサイトがC#でオンラインであるかどうかをどのように確認しますか?
- 22. 鉱山の隣人を確認する
- 23. どのAzureアプリケーションサービス(ウェブサイト)スロットが「アクティブ」であるかを確認する方法は?
- 24. Virtualhost:DockerとFlaskのウェブサイトをオンラインにする
- 25. パスワードを確認する方法cakephpをハッシュで確認する方法
- 26. Androidサーバがオンラインであるかどうかを確認する
- 27. Jqueryサーバーがオンラインかどうかを確認する方法ASP.NET MVC
- 28. Safariモバイルで自分のウェブサイトの動作を確認する方法は?
- 29. 私のPCをオフにすると私のウェブサイトをオンラインに保つ方法
- 30. vsto Outlookアドイン:OutlookがExchangeサーバーとオンラインになっているかどうかを確認する方法
いずれかのASP.NETメンバーシッププロバイダを使用していますか? SqlMembershipProviderなど? –