我们有一个在 .NET Framework 4.0 上运行的 ASP.NET 页面。
目前,我们在HttpContext.Current.Application["keyToTheValue"]中存储了一些在应用程序的整个运行期间应该可用的值。
这是存储值的错误位置,我们需要无限期的时间,或者我们如何配置应用程序不回收这些值?
哦,重要的是要注意:我们实际上是在集成模式下运行页面,这可能对应用程序缓存有一些影响。
我们有一个在 .NET Framework 4.0 上运行的 ASP.NET 页面。
目前,我们在HttpContext.Current.Application["keyToTheValue"]中存储了一些在应用程序的整个运行期间应该可用的值。
这是存储值的错误位置,我们需要无限期的时间,或者我们如何配置应用程序不回收这些值?
哦,重要的是要注意:我们实际上是在集成模式下运行页面,这可能对应用程序缓存有一些影响。
使用 Application 对象没有任何问题,但是如果您想在应用程序关闭的情况下保留数据(这迟早会发生),您最好将值存储在数据库中。
这取决于数据和环境,但对于简单数据,使用应用程序获取全局值可能没问题。您应该查看 System.Web.Caching 命名空间以了解更高级的方案。此外,如果您在某种网络场或集群中,您可能需要滚动自己的全局数据存储,以便可以在多个服务器之间共享它。
如果您的数据是敏感的,则将其存储在您的数据库中以供使用它的生命周期..它不是那么敏感,然后使用持久性 Cookie 并将其有效期设置为最长...
将数据存储在应用程序中没有问题。但是它有限制,它会随着 IIS 的重置而重置。所以根据你的场景使用它。