2

ASP.NET Web サイトの Web サイト設定をアプリケーション状態で保存しています。メソッドの状態も初期化しましたApplication_Start()。特定のユーザーはこれらの設定を変更できますが、一定期間が経過するとApplication_Start()、サーバーが常に実行されているにもかかわらず、設定がメソッドで初期化された値に戻ります。

なぜこれが起こっているのですか?特定の期間リクエストを受信しない場合、アプリケーションはシャットダウンされますか?

前もって感謝します。

4

3 に答える 3

4

特定の期間リクエストを受信しなかった場合、アプリケーションはシャットダウンされますか?

はい、デフォルトでは、アプリケーションプールは一定期間非アクティブになるとシャットダウンします。詳細については、アプリケーションプールが予期せずリサイクルされる可能性がある一般的な理由を参照してください。

アプリケーションプールのリサイクルイベント全体で状態を維持する必要がある場合は、データベースまたはApp_Dataに状態を保持する必要があります。

于 2012-08-02T13:37:29.337 に答える
2

アプリケーションの状態は Web サーバーのメモリに保存されます。アプリケーション プールがリサイクルされ、アプリケーション変数のデータが失われるため、ユーザーが行った変更は失われます。

web.config / global.asax を変更すると、アプリケーションも再起動されます。

ユーザーが行った変更を保持したい場合は、それを永続的なメディア (データベース) に保存し、アプリケーションの起動時にそこからロードする必要がある場合があります。

このリンクは、アプリケーションの状態に関する詳細情報を提供します

于 2012-08-02T13:38:52.283 に答える
2

はい、非アクティブ状態が一定時間続くと、アプリケーション プールはシャットダウンします。生き続けるために何らかの変数が必要な場合は、それらを web.config またはデータベースに配置することを検討する必要があります。これにより、より安全で論理的になります。

于 2012-08-02T13:40:33.060 に答える