我正在为应用程序状态的ASP.NET网站存储一些网站设置。我还在Application_Start()
方法中初始化了状态。特定用户可以更改这些设置,但在一段时间后,即使服务器一直在运行,设置也会恢复为Application_Start()
方法中初始化的值。
知道为什么会这样吗?如果应用程序在特定时间段内没有收到任何请求,它是否会关闭?
提前致谢。
答案 0 :(得分:4)
如果应用程序没有收到任何请求,它是否会关闭 在特定的时间段内?
是的,默认情况下,应用程序池将在一段时间不活动后关闭。有关详细信息,请参阅Common reasons why your application pool may unexpectedly recycle。
如果需要在应用程序池循环事件中保持状态,则应将状态保存在数据库或App_Data中。
答案 1 :(得分:2)
应用程序状态存储在webserver的内存中。用户所做的更改会丢失,因为应用程序池已回收,因此应用程序变量数据已消失。
对web.config / global.asax的任何更改也将重新启动应用程序。
如果您希望保留用户所做的更改,您可能需要将其存储到持久性介质(数据库)中,并在应用程序启动时从那里加载。
此link为您提供有关应用程序状态的更多信息
答案 2 :(得分:2)
是的,在一段时间不活动后,应用程序池将关闭。如果你需要一些变量来保持活着,你应该考虑将它们放在web.config或数据库中,它会更安全,也更符合逻辑。