2012-08-02 55 views
2

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

任何想法为什么会发生这种情况?如果应用程序在特定时间段内没有收到任何请求,它会关闭吗?

在此先感谢。

回答

4

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

是的,默认情况下,应用程序池将在一段时间不活动后关闭。有关更多信息,请参阅Common reasons why your application pool may unexpectedly recycle

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

2

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

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

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

link为您提供更多关于应用程序状态

2

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