Я не могу ответить на основании опыта использования профиля кэширования, поэтому я не уверен, поможет ли это.
Под прикрытием ASP.NET WebForms управляются HttpHandlers - написаны MS (как и следовало ожидать). Когда вы пишете свой собственный обработчик Http, вы не получаете автоматически все функции, которые есть у обработчика System.Web.UI.PageHandlerFactory (тот, который по умолчанию присматривает за страницами / запросами .aspx) - вы должны включить его (или развивать это) самостоятельно.
Может быть, это ваша проблема - может быть, возможности Caching Profile используются страницами aspx, потому что System.Web.UI.PageHandlerFactory уже «интегрирован» с ним из коробки, где-как, когда вы пишете по вашему - их просто нет (по умолчанию) - и, следовательно, они не работают.