Asp.net 使用HttpContext.Current.Application存储值

Asp.net 使用HttpContext.Current.Application存储值,asp.net,asp.net-4.0,Asp.net,Asp.net 4.0,我们有一个ASP.NET页面运行在.NET Framework 4.0上 目前,我们在HttpContext.Current.application[“keyToTheValue”]中存储了应用程序整个生命周期中应该可用的一些值 这是不是一个错误的存储价值的地方,我们需要无限期, 或者,我们如何将应用程序配置为不回收这些值 哦,需要注意的是:我们实际上是在集成模式下运行页面,这可能会对应用程序缓存产生一些影响。使用应用程序对象没有错,但是如果您想在应用程序关闭的情况下保存数据(这迟早会发生),您

我们有一个ASP.NET页面运行在.NET Framework 4.0上

目前,我们在HttpContext.Current.application[“keyToTheValue”]中存储了应用程序整个生命周期中应该可用的一些值

这是不是一个错误的存储价值的地方,我们需要无限期, 或者,我们如何将应用程序配置为不回收这些值


哦,需要注意的是:我们实际上是在集成模式下运行页面,这可能会对应用程序缓存产生一些影响。

使用应用程序对象没有错,但是如果您想在应用程序关闭的情况下保存数据(这迟早会发生),您最好将值存储在数据库中。

使用应用程序对象没有错,但如果您想在应用程序关闭(这迟早会发生)的情况下仍保留数据,则最好将值存储在数据库中。

这取决于数据,和环境,但对于简单的数据,使用全局值应用程序可能很好。您应该查看System.Web.Caching命名空间以了解更高级的方案。此外,如果您在某种web场或集群中,您可能需要滚动您自己的全局数据存储,以便可以跨多个服务器共享它

这取决于数据和环境,但对于简单的数据,使用全局值应用程序可能很好。您应该查看System.Web.Caching命名空间以了解更高级的方案。此外,如果您在某种web场或集群中,您可能需要滚动您自己的全局数据存储,以便可以跨多个服务器共享它

如果您的数据是敏感的,则将其存储在数据库中以供使用。它没有那么敏感,则使用持久cookie并将其过期时间设置为最大值。

如果您的数据是敏感的,则将其存储在数据库中以供使用。它没有那么敏感,则使用持久cookie并设置其过期时间期间到最大值。

在应用程序中存储数据没有问题。但它有一个限制,即它会随着IIS的重置而重置。
因此,请根据您的场景使用它。

在应用程序中存储数据没有问题。但它有一个限制,即它会随着IIS的重置而重置。
因此,请根据您的场景使用它。

您能解释一下持久cookie的含义吗?持久cookie存储在客户端计算机上的文本文件中。直到它们过期或手动删除。它们的编写方式如下:HttpCookie mycokie=new HttpCookie(“mycokie”)//在cookie mycokie.values.Add(“userid”,objUser.id.ToString())中添加键值//设置cookie到期日期和时间。让它持续12小时。myCookie.Expires=DateTime.Now.AddHours(12)//最重要的是,将cookie写入客户端。Response.Cookies.Add(mycokie)根据具体用途,当用户禁用Cookies时,这可能是一个问题……感谢您的解释,我想知道什么是持久cookie。但我明白你指的是一块普通的饼干:)我会把你的标记为答案,因为你列出了两个基本的选择。其中一个是一个很好的例子。你能解释一下持久cookie的含义吗?持久cookie存储在客户端计算机上的文本文件中。直到过期或手动删除。它们的编写方式如下:HttpCookie mycokie=new HttpCookie(“mycokie”)//在cookie mycokie.values.Add(“userid”,objUser.id.ToString())中添加键值//设置cookie到期日期和时间。让它持续12小时。myCookie.Expires=DateTime.Now.AddHours(12)//最重要的是,将cookie写入客户端。Response.Cookies.Add(mycokie)根据具体用途,当用户禁用Cookies时,这可能是一个问题……感谢您的解释,我想知道什么是持久cookie。但我明白你指的是一块普通的饼干:)我会把你的标记为答案,因为你列出了两个基本的选择。其中一个例子很好,谢谢。当前的场景需要在应用程序回收时删除这些值,我只是想知道如何避免应用程序的随机/不可预测的循环。这听起来像删除,您并不真的想要删除应用程序回收的值,而是基于您认为更可预测的其他东西。也许将这些值存储在DB中,然后编写自己的代码,以便按照您选择的时间表(或基于事件)清理它。然后,如果应用程序意外重新启动,则不会丢失数据。
System.Web.HttpContext.Current.application
,是否有大小限制?谢谢。当前的场景需要在应用程序回收时删除这些值,我只是想知道如何避免应用程序的随机/不可预测的循环。这听起来像删除,您并不真的想要删除应用程序回收的值,而是基于您认为更可预测的其他东西。也许将这些值存储在DB中,然后编写自己的代码,以便按照您选择的时间表(或基于事件)清理它。然后,如果您有意外的应用程序重新启动,您将不会丢失数据。
System.Web.HttpContext.Current.application
是否有大小限制?