私は次の問題の解決策を開発しようとしています。ユーザーがログインしてページにいる時間に関する情報をdbに保存する必要があります。現在、ユーザーがWCFサービスでログインおよびログアウトするときにdbに書き込みを行っていますが、ユーザーがウィンドウを閉じたり、他のWebページに移動したりする場合の対処方法を説明しています。すべてのユーザーを毎分呼び出して、彼が生きているかどうかをチェックするスレッド関数が良い解決策であるかどうか疑問に思っています。どんな助けでもいいでしょう。ありがとう。
質問する
90 次
1 に答える
0
データを少し待つことができる場合(アプリケーションの使用状況によって異なります)、データをIsolatedStorageに保存し、ユーザーがアプリケーションを再開したときにデータを送信できます。これは非常に単純な解決策ですが、ユーザーがアプリケーションを再度開かないと、データを待つ必要があり、一部のデータが失われます(これもアプリによって異なります)。
他の解決策は、 OnUnloadまたはOnBeforeUnloadイベント中にJavaScript( JSからWCFを呼び出す方法)からデータを送信することです。または、JSからいくつかのaspxサイトへの単純なHttpRequestを実行して、クエリで時間を渡します。
編集:別のスレッドは素晴らしいアイデアです(現在のプロジェクトではこのようなソリューションがあります)が、頻繁に実行するとIISが詰まる可能性があります(ユーザー数、帯域幅などによって異なります)。また、ユーザーが何もしなくても、Sessionがタイムアウトするのを防ぎます(これが私のプロジェクトでこのソリューションを使用する主な目的です)。
于 2012-08-07T20:44:59.650 に答える