如何从同一台服务器上的另一个asp.net应用程序清除asp.net应用程序的缓存?

时间:2014-03-27 15:34:12

标签: c# asp.net

有点奇怪的问题。这是:

我有两个ASP.NET应用程序:Web应用程序和Web服务应用程序。

通过Web应用程序使用的数据库中的Web服务影响数据到达的信息。

一个特定的数据位控制下拉菜单中的项目 - 当应用程序中的数据被更改时,它可以调用:

HttpContext.Current.Cache.Remove

但我现在需要清除Web服务中的缓存,因为我可以接收更新该信息的消息。

有人可以推荐一种方法吗?

4 个答案:

答案 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);

Cache.Insert Method

答案 3 :(得分:0)

您可以尝试SQL依赖项。当您订阅的表有任何更改时,它将触发一个事件。

https://www.codeproject.com/Articles/12335/Using-SqlDependency-for-data-change-events