我有一个设计,想用户控件的output cache 支持fileDependency (1)用户控件的代码: <%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="CacheControl_WebUserControl" %> <%@ OutputCache Duration ="360" VaryByParam ="none" VaryByCustom ="OutputCacheControl" %> C#: public partial class CacheControl_WebUserControl : System.Web.UI.UserControl { string path = string.Empty; protected void Page_Load(object sender, EventArgs e) { Response.Write("<br/>controls:" + System.DateTime.Now.ToString()); path = Server.MapPath("TextFile.txt"); Cache.Add("head", "1", new System.Web.Caching.CacheDependency(path), System.Web.Caching.Cache.NoAbsoluteExpiration, System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.Normal, null); } protected void Page_PreRender(object sender, EventArgs e) { //PartialCachingControl pc = this.Page.FindControl(this.ID) as PartialCachingControl; //if (pc != null) //{ // pc.CachePolicy.Dependency = new System.Web.Caching.CacheDependency(path); // pc.CachePolicy.VaryByParams["a"] = true; //} } } 关键在Global.asax public override string GetVaryByCustomString(System.Web.HttpContext context, string custom) { string val = null; if (custom == "OutputCacheControl") { if (context.Cache["head"] == null) { Random rad = new Random(100000); val = rad.ToString(); } } return val; }