2008-09-16 71 views
1

我们的每个生产Web服务器都为独立的网站(ASP.NET Web应用程序)维护自己的缓存。目前要清除缓存,我们登录到服务器并“触摸”web.config文件。远程重置Web场中服务器缓存的最佳方式是什么?

有没有人有一个安全/安全的方式的例子远程重置特定Web应用程序的缓存?理想情况下,我们可以说“清除在所有服务器上运行的应用程序X的缓存”,并且“清除在服务器Y上运行的应用程序X的缓存”。

编辑/澄清:

  • 我也许应该澄清,通过应用程序本身做,这不是一个真正的选择(即某种日志中的应用,冲浪到指定的页面或处理程序这将清除缓存)。为了做到这一点,我们需要禁用/绕过日志记录和统计数据跟踪代码,或者弄乱我们的统计数据。

  • 是的,缓存定期到期。我想要做的事情是设置一些东西,这样我可以根据需要过期缓存特定的缓存,通常在我们更改数据库中的某些内容后(我们使用的是SQL 2000)。我们现在可以做到这一点,但只能通过登录服务器本身。

回答

1

找到有关触摸工具看起来有用一个DevX文章。

我打算尝试将它与数据库中的一个表(添加记录并且触摸工具找到它并更新相应的web.config文件)或Web服务(拨打电话和触摸工具被调用来更新相应的web.config文件)

0

这可能不是“优雅”的,但您可以设置执行批处理脚本的计划任务。该脚本本质上会“触及”web.config(或其他可导致重新编译的文件)。

否则,您的应用程序缓存未设置为N分钟后过期吗?

1

对于每个应用程序,您都可以编写一个cache-dump.aspx脚本来终止缓存/应用程序数据。将其复制到所有应用程序并编写集线器脚本来管理呼叫。

为了安全起见,您可以添加各种身份验证查找或IP检查。

来这里的路上我做实际应用倾销:

Context.Application.Lock() 
Context.Session.Abandon() 
Context.Application.RemoveAll() 
Context.Application.UnLock() 
相关问题