有点奇怪的问题。这是:
我有两个ASP.NET应用程序:Web应用程序和Web服务应用程序。
通过Web应用程序使用的数据库中的Web服务影响数据到达的信息。
一个特定的数据位控制下拉菜单中的项目 - 当应用程序中的数据被更改时,它可以调用:
HttpContext.Current.Cache.Remove
但我现在需要清除Web服务中的缓存,因为我可以接收更新该信息的消息。
有人可以推荐一种方法吗?
答案 0 :(得分:5)
缓存失效可能很难。在我的脑海中,我可以想到3种不同复杂性的解决方案,这些解决方案可能适用于您,也可能不适合您。
首先,您可以为Web应用程序调用的Web应用程序编写Web服务,以使缓存无效。这可能是最难的。
其次,您可以让Web服务应用在数据库中写一个“脏”标志,Web应用可以在呈现下拉菜单之前检查该标志。这是我要去的路线。
第三,您可以直接停止缓存该特定数据。
答案 1 :(得分:3)
您可以使用一种网络方法,其唯一目的是清除缓存。
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();
答案 2 :(得分:0)
使用到期时间实施缓存。
Cache.Insert(“DSN”,connectionString,null, DateTime.Now.AddMinutes(2),Cache.NoSlidingExpiration);
答案 3 :(得分:0)
您可以尝试SQL依赖项。当您订阅的表有任何更改时,它将触发一个事件。
https://www.codeproject.com/Articles/12335/Using-SqlDependency-for-data-change-events