如何从同一服务器上的另一个asp.net应用程序中清除asp.net应用程序的缓存
本文关键字:net 应用程序 asp 清除 缓存 服务器 另一个 | 更新日期: 2023-09-27 17:53:57
遇到了一个奇怪的问题。是:
我有两个ASP。. NET应用程序:一个web应用程序和一个web服务应用程序。
通过webservice到达的信息在web应用程序使用的数据库中影响数据。
一个特定的数据位控制下拉菜单中的项目-当数据在应用程序中被更改时,它可以调用:
HttpContext.Current.Cache.Remove
但是我现在需要清除web服务中的缓存,因为我可以接收更新该信息的消息。
有谁能推荐一种方法吗?
缓存无效可能很困难。我能想到三种不同复杂程度的解决方案,可能对你有用,也可能不适合。
首先,你可以为web应用程序编写一个web服务,web服务应用程序调用它来使缓存无效。这可能是最难的。
第二,你可以让web服务应用程序在数据库中写一个"脏"标志,web应用程序可以在呈现下拉菜单之前检查它。这是我要走的路线。
第三,您可以简单地停止缓存特定的数据。
你可以有一个web方法,它的唯一目的是清除缓存。
var webRequest = HttpWebRequest.Create(clearCacheURL);
var webResponse = webRequest.GetResponse();
// receive the response and return it as function result
var sr = new System.IO.StreamReader(webResponse.GetResponseStream());
var result = sr.ReadToEnd();
使用过期时间实现缓存
缓存。插入("DSN", connectionString, null,DateTime.Now.AddMinutes(2)、Cache.NoSlidingExpiration);
缓存。插入方法
您可以尝试SQL依赖。当您订阅的表有任何更改时,它将触发一个事件。
https://www.codeproject.com/Articles/12335/Using-SqlDependency-for-data-change-events