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

C# 如何从同一服务器上的另一个asp.net应用程序中清除asp.net应用程序的缓存?,c#,asp.net,C#,Asp.net,有点奇怪的问题。下面是: 我有两个ASP.NET应用程序:一个web应用程序和一个web服务应用程序 通过web服务到达的信息会影响web应用程序使用的数据库中的数据 一个特定的数据位控制下拉菜单中的项目-当数据在应用程序中更改时,它可以调用: HttpContext.Current.Cache.Remove 但是我现在需要清除web服务中的缓存,因为我可以接收更新该信息的消息 有人能推荐一种方法吗?您可以使用一种web方法,其唯一目的是清除缓存 var webRequest = HttpWe

有点奇怪的问题。下面是:

我有两个ASP.NET应用程序:一个web应用程序和一个web服务应用程序

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

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

HttpContext.Current.Cache.Remove
但是我现在需要清除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();

您可以有一个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();

实现具有到期时间的缓存

Cache.InsertDSN,connectionString,null, DateTime.Now.AddMinutes2,Cache.NoSlidingExpiration


实现具有到期时间的缓存

Cache.InsertDSN,connectionString,null, DateTime.Now.AddMinutes2,Cache.NoSlidingExpiration


缓存失效可能很困难。在我的脑海里,我能想到3种不同复杂度的解决方案,它们可能对你有用,也可能不适用

首先,您可以为web应用程序编写web服务,web服务应用程序调用该web服务以使缓存无效。这可能是最难的

其次,您可以让web服务应用程序在数据库中写入脏标志,web应用程序可以在呈现下拉菜单之前检查该脏标志。这是我要走的路线


第三,您可以简单地停止缓存特定数据。

缓存失效可能很难。在我的脑海里,我能想到3种不同复杂度的解决方案,它们可能对你有用,也可能不适用

首先,您可以为web应用程序编写web服务,web服务应用程序调用该web服务以使缓存无效。这可能是最难的

其次,您可以让web服务应用程序在数据库中写入脏标志,web应用程序可以在呈现下拉菜单之前检查该脏标志。这是我要走的路线


第三,您可以简单地停止缓存特定数据。

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


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


最后…我们停止了缓存它!我们实现了第二个,但我们最终放弃了整个做法——感谢您,最后……我们停止了缓存它!我们实施了第二种方法,但最终放弃了这种方法——谢谢