是否可以在不重置AppDomain的情况下清除ASP.NET应用程序缓存?

Bry*_*yan 3 asp.net caching

我想重置/清除缓存中的项目,但不重置应用程序或为此编写专门的页面.即,非程序化的解决方案.这可能吗?

Rub*_*ias 8

简答:不.

ASP.NET Cache没有管理它的管理界面.您需要回收应用程序池,或创建一个简单的页面来从ASP.NET中的缓存中删除项目.

编辑:灵感来自Mick的答案,你可以有这样一个页面(RemoveCache.aspx):

<%@ Page Language="C#" %>
<script runat="server">

    void Page_Load(object sender, EventArgs e)
    {
        if (String.IsNullOrEmpty(Request.QueryString["name"]))
        {
            foreach (DictionaryEntry item in Cache)
            {
                Cache.Remove(item.Key.ToString());
                Response.Write(item.Key.ToString() + " removed<br />");
            }
        }
        else
        {
            Cache.Remove(Request.QueryString["name"]);
        }
    }

</script>
Run Code Online (Sandbox Code Playgroud)

如果你调用RemoveCache.aspx所有缓存将被删除; 正在运行RemoveCache.aspx?name=Products,只会Products删除缓存条目.