Odpowiadając na moje własne pytanie dla dobra przyszłych pokoleń ....
Skończyło się nadrzędne wywołanie GetCacheDependency aby upewnić się, że widok nie jest buforowane. (Mamy widoki pamięci podręcznej ręcznie). Musieliśmy stworzyć FakeCacheDependency, która pozwala nam użyć daty ostatniej modyfikacji z naszej pamięci podręcznej.
W naszej aplikacji nasze wirtualne widoki są nazywane CondorVirtualFiles. (Podczas budowania mechanizmu wyświetlania należy nadać mu chłodną nazwę).
public override System.Web.Caching.CacheDependency GetCacheDependency(string virtualPath, System.Collections.IEnumerable virtualPathDependencies, DateTime utcStart)
{
var view = this.GetFile(virtualPath);
if (view is CondorVirtualFile)
{
FakeCacheDependency fcd = new FakeCacheDependency((view as CondorVirtualFile).LastModified);
return fcd;
}
return base.GetCacheDependency(virtualPath, virtualPathDependencies, utcStart);
}
public class FakeCacheDependency : System.Web.Caching.CacheDependency
{
public FakeCacheDependency(DateTime lastModified)
{
base.SetUtcLastModified(lastModified);
}
public FakeCacheDependency()
{
base.SetUtcLastModified(DateTime.UtcNow);
}
}
Czy jesteś pewien, że to MVC buforuje widok, a nie przeglądarkę? ctrl-F5, aby sprawdzić, czy widok zostanie wywołany. –
Dzięki za pytanie i odpowiedź, rozwiązał mój dość irytujący problem z buforowaniem, gdy masz widok wewnątrz biblioteki DLL! –