Ich habe einen virtuellen Pfadanbieter. Problem ist das Zwischenspeichern meiner Dateien. Immer wenn ich manuell eine der Aspx-Dateien bearbeite, die darauf verweisen, dass das VPP die neue Datei nicht einliest, wird die alte Datei weiterhin verwendet, bis ich die Site neu starte.
Ich habe sogar die GetCacheDependency () in meiner VirtualPathProvider-Klasse überholt:
%Vor%Ideen?
Die Rückgabe eines NULL sagt ASP.NET im Wesentlichen, dass Sie keine Abhängigkeit haben - daher wird ASP.NET das Element nicht neu laden.
Sie müssen eine gültige Abhängigkeit, z. B.
, zurückgeben %Vor%Ein korrekterer Ansatz besteht darin, sicherzustellen, dass Sie nur Ihre eigenen Cache-Abhängigkeiten behandeln (dies ist ein schematisches Beispiel):
%Vor%Die korrekte Methode zum Deaktivieren des Caching ist:
%Vor%Ich glaube nicht, dass dies das ursprüngliche Poster ist. Er möchte das Caching vollständig deaktivieren, es nicht besser implementieren, obwohl Ihr Beitrag hilfreich für Letzteres ist.
Sehr viele Leute verwenden VirtualPathProvider, um Daten aus einer Datenbank anstatt aus einem Dateisystem zu ziehen. Ich sehe nicht, wie das Erstellen einer Dateisystemabhängigkeit eine nützliche Methode ist, um festzustellen, wann es Zeit ist, die Datei zu aktualisieren.
Wie würden Sie es erzwingen, niemals Caching zu verwenden und immer die neueste Version der Datei abzurufen? Das ist die Frage.
Die Lösung, die für mich wie gewünscht funktionierte, war:
Bei dieser Lösung führt dies jedoch zum Hängen des Servers (Cassini, IIS 6, IIS 7, IIS 8). Das Aufhängen dauert nur ein paar Minuten, dann werden die Ergebnisse geliefert.
Ich habe auch einen Test für den virtuellen Pfad / Datei mit den gleichen Ergebnissen enthalten. Ich habe mit Browser-Timeouts verstimmt.
Kann jemand helfen?
Tags und Links c# caching virtualpathprovider