1

MVC 3 を使用して ASP.Net Web アプリをビルドしました。web.config でセッション タイムアウトを構成しました (フォーム ベース認証を使用します)。

<forms loginUrl="~/Common/Login" path="/" protection="All" timeout="180" requireSSL="false" slidingExpiration="true" defaultUrl="~/Common/Login" cookieless="UseDeviceProfile" enableCrossAppRedirects="false" />

順調に進んでいますが、稼働後、従業員は典型的な Windows アプリのように使い始めました。1 回「ログイン」し、Web アプリのページを開いたままにしておきます。Web アプリには、一般的なポストバック ページと、AJAX ベースのセクションおよびファイルのアップロードがあります。

最近のデバッグとユーザーのアクティビティ ログのレビューでは、これにより予期しないポストバックとサーバー側の処理が発生したことが示されています。

セッションを維持することをどのくらいアドバイスしますか? また、サーバー側のセッション オブジェクトに imp データを保存します。定期的なページ更新は解決策になりますか?

4

1 に答える 1

1

フォーム認証チケットの有効性と ASP.NET セッションの有効性には違いがあります。それらは2つのまったく関係のないものです。質問で示したのは、スライド式の有効期限で 180 分に設定したフォーム認証チケットの有効性です。

セッションを維持することをどのくらいアドバイスしますか?

ASP.NET セッション (使用している場合) とフォーム認証チケットのタイムアウトの両方を同じ値に設定する必要があります。セッションを長時間維持するか、サーバーに対して定期的な ping を実行してセッションを維持するかは、まったく同じです。したがって、サーバーに定期的なリクエストを送信するのではなく、タイムアウトを十分に高い値に設定することをお勧めします。

これは、ASP.NET セッションを使用していて、このセッションを InProc に保存している場合、Web サーバーがいつでもアプリケーションのリサイクルを決定できることを知っておく必要があります。たとえば、これは、特定の CPU/メモリのしきい値に達した場合に発生する可能性があります。これが発生した場合、セッションをメモリに保存している場合は、タイムアウト値を設定した時間に関係なく、すべての情報が失われます。この場合、プロセス外の分散セッション ストレージの使用を検討する必要があります。

于 2012-12-08T16:13:38.047 に答える