缓存我的静态数据在服务器上为所有用户c#
本文关键字:用户 服务器 我的 静态 数据 缓存 | 更新日期: 2023-09-27 18:08:02
我想在服务器中缓存一些静态数据。如果任何用户请求相同的数据缓存,应该返回。
如果我使用HttpContext。缓存,它会因用户而异。请帮助我如何在c#中做到这一点?
我已经试过了:
HttpContext.Cache.Insert(cacheKey, Sonarresult, null, DateTime.Now.AddSeconds(Timeduration), Cache.NoSlidingExpiration);
我试过了,但对于所有用户都将存储到缓存中。我不想那样。第一个用户只需要存储它
像使用会话变量一样使用应用程序缓存可以达到目的。
。
// get
string message = Application["somemessage"].ToString();
对所有用户都是一样的。
更详细地说,在代码中为应用程序变量设置值的地方要小心,因为一旦它们改变了,所有的应用程序变量都会改变。
// set
Application["somemessage"] = "your message";
全球。如果应用程序变量的值永远不会改变,那么asax将是一个可以设置它们值的地方:
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
// here we set the value every time the application starts
Application["somemessage"] = "your message";
// the following line will get the SiteName from the web.config setting section
Application["SiteName"] = ConfigurationManager.AppSettings["SiteName"].ToString();
}
您可以使用应用程序缓存来完成此操作。
void Application_Start ()
{
_cache = Context.Cache;
_cache.Insert ("mycahce", mystaticvariabledata, null,
Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration,
CacheItemPriority.Default,null);
}