2

ASP.NET Webサイトでは、セッションをSQLServerに格納しています。セッションが頻繁にリサイクルされることを除いて、すべてが正常に機能しています。タイムアウト期間を30分に設定しましたが、数分以内にリサイクルされる場合があります。専用サーバーと、「クラシック」アプリケーションプールの下で実行されるWebサイトがあります。私はこの問題についてたくさん調べましたが、満足のいく答えは見つかりませんでした。どんな助けでも大歓迎です。

注:ほとんどの場合、ビューステートが多く使用されているページで発生します。ビューステートとセッションのリサイクルのリンクがあるのでしょうか。

4

1 に答える 1

2

この問題は、Web ファーム (クライアントにサービスを提供する複数の Web サーバー) または Web ガーデン (アプリケーション プール内の複数のワーカー プロセス) がある場合に発生しました。

Web ファームがある場合は、すべての Web サーバーが同じマシン キーを持ち、すべてのインスタンスがまったく同じアプリケーション パスを持つようにする必要があります。

Web ガーデンがある場合は、ワーカー プロセスの最大数を 1 に戻して、問題が解決するかどうかを確認してください。

IIS の設定を確認しているときに、アプリケーション プールが定期的にリサイクルされていないことも確認する必要があります。これは、アプリ プールで指定されている次のいずれかが原因である可能性があります。

1) プライベート メモリ制限 (メモリの最大量を超えた場合、アプリ プールはリセットされます)

2) 定期的な時間間隔のリサイクル (アプリ プールは、指定された分数 (既定値は 1740) の後、および/または特定の時間に自動的にリサイクルされます)。

3) アイドル タイムアウト (アプリケーション プールが自動的にシャットダウンされるまでに経過できる非アクティブな分数)。

また、イベント ログで、アプリケーション プールのクラッシュやリサイクルのレポートを確認する必要があります。

アップデート:

追加の考え:

アプリケーションの bin ディレクトリを監視し、そのディレクトリまたは web.config ファイル内のファイルの属性 (バックアップ フラグやタイムスタンプなど) を変更または変更する、ウイルス対策ソフトウェアやバックアップ ソフトウェアなどのアプリケーションがある場合、これにより、アプリケーションのリサイクルも。

于 2011-11-06T19:37:52.677 に答える