Возврат значения NULL по сути говорит ASP.NET, что у вас нет никакой зависимости - следовательно, ASP.NET не будет перезагружать элемент.
Вам нужно вернуть действительную зависимость, например,
public override CacheDependency GetCacheDependency(string virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
{
return new CacheDependency(getPhysicalFileName(virtualPath));
}
Более правильный подход - убедиться, что вы обрабатываете только свои собственные зависимости кэша (это схематический пример):
public override CacheDependency GetCacheDependency(string virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
{
if (isMyVirtualPath(virtualPath))
return new CacheDependency(getPhysicalFileName(virtualPath));
else
return new Previous.GetCacheDependency(virtualPath, virtualPathDependencies, utcStart);
}