1

问题:我无法将 OutputCaching 与源自 MyCustomControl 的控件一起使用。控件是使用 Page.LoadControl 方法使用数据库中的定义动态加载的。

当我添加到 ascx <%@ OutputCache VaryByParam="*" Duration="3600"%> 时,会引发“InvalidCastException: System.Web.UI.PartialCachingControl -> MyCustomControl”异常。

我无法修改包含动态加载控制逻辑的程序集。有没有办法在派生控件中修复它?

第二个问题是关于 iis7 和本机输出缓存——它解决了这个问题吗?(我试图设置几个性能计数器,我发现缓存没有被命中......)

4

1 回答 1

0

如果您动态加载控件,它们将作为 System.Web.UI.PartialCachingControl 加载。

Control control = Page.LoadControl("/somecontrol.ascx");
this.Controls.Add(control);
MyCustomControl myControl = ((PartialCachingControl)control).CachedControl as MyCustomControl 

此行为在 IIS7 中完全相同

于 2010-03-12T08:45:08.073 回答