2

我在应用程序状态下为我的 ASP.NET 网站存储了一些网站设置。我还在Application_Start()方法中初始化了状态。特定用户可以更改这些设置,但一段时间后,这些设置将恢复为在Application_Start()方法中初始化时使用的值,即使服务器一直在运行。

知道为什么会这样吗?如果在特定时间段内没有收到任何请求,应用程序是否会关闭?

提前致谢。

4

3 回答 3

4

如果在特定时间段内没有收到任何请求,应用程序是否会关闭?

是的,默认情况下,应用程序池将在一段时间不活动后关闭。有关更多信息,请参阅应用程序池可能意外回收的常见原因

如果您需要跨应用程序池回收事件保持状态,您应该将您的状态保存在数据库或 App_Data 中。

于 2012-08-02T13:37:29.337 回答
2

应用程序状态存储在网络服务器的内存中。用户所做的更改将丢失,因为应用程序池已回收,因此应用程序变量数据已丢失。

对 web.config / global.asax 的任何更改也将重新启动应用程序。

如果您想保留用户所做的这些更改,您可能需要将其存储到持久性介质(数据库)中,并在应用程序启动时从那里加载。

链接为您提供有关应用程序状态的更多信息

于 2012-08-02T13:38:52.283 回答
2

是的,在一段时间不活动后,应用程序池将关闭。如果你需要一些变量来维持生命,你应该考虑将它们放在 web.config 或数据库中,这样会更安全,更合乎逻辑。

于 2012-08-02T13:40:33.060 回答