1

Проблема: Я не могу использовать OutputCaching с моими элементами управления, которые происходят из MyCustomControl. Элементы управления загружаются динамически с использованием определений из базы данных с помощью метода Page.LoadControl.InvalidCastException: System.Web.UI.PartialCachingControl -> MyCustomControl when OutputCaching

Когда я добавить к ASCX <% @ OutputCache VaryByParam = "*" Продолжительность = "3600" %> "InvalidCastException: System.Web.UI.PartialCachingControl -> MyCustomControl" исключение.

Я не могу изменить сборку, которая содержит динамическую логику управления нагрузкой. Есть ли способ исправить это в производных элементах управления?

Второй вопрос касается iis7 и собственного кэширования выходных данных - решает ли эта проблема? (Я попытался настроить несколько счетчиков производительности, и я видел, что кэш не попал ...)

ответ

0

Если вы загружаете элементы управления динамически, они загружаются как System.Web.UI.PartialCachingControl.

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

Такое поведение является exacty то же самое в IIS7