ASP.NET: Wo/wie wird web.config-Cache?
Ich habe irgendwo gelesen, in der Microsoft-Dokumentation, dass der Inhalt der ASP.NET's web.config-Cache. Wenn das wahr ist, wo ist es zwischengespeichert - in Speicher oder auf der Festplatte?
Und ein follow-up-Frage: gibt es irgendwelche performance-überlegungen muss ich machen, wenn ich auf das web zugreifen.config intensiv?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seinen im Arbeitsspeicher zwischengespeichert, Zwischenspeichern auf der Festplatte macht keinen Sinn, die bereits auf der Festplatte.
Zunächst in ASP.NET Sie wollen sicherstellen, dass Sie Zugriff auf die Konfiguration die Abschnitte über die HttpContext-Objekts
GetSection
- Methode (dabei wird der zwischengespeicherte Kopien verwaltet ASP.NET).Leistung der Zugriff auf die config-Werte ist eine Funktion, die interne Implementierung des Section-Objekts (das Objekt zurückgegeben GetSection). Ein
ConfigurationSection
einfach kann fungieren als wrapper für einen DOM Knoten, die es Lesen können auf jede Anfrage für eine Immobilie. OTH, könnte es intern cache den Wert und beobachten Sie die Veränderungen.Mein Ratschlag: halten Sie Ihren code einfach und nur auf die Werte zuzugreifen, müssen Sie über
GetSection
eher als Versuch zu halten Kopien von Ihnen anderswo, sondern mit allen Mitteln erhalten eine Referenz auf das Objekt zurückgegebenGetSection
für die Dauer einer Anfrage, wenn Sie gehen, Holen Sie mehrere Werte aus es.ConfigurationManager
aber wird in diesem Zusammenhang verwenden dieCachedPathData
um den Abschnitt. Der Grund dafür ist, dass es vieleweb.config
beteiligten Dateien (in jedem Ordner im aktuellen Pfad), der tatsächliche Zustand der config präsentiert werden, um für einen Pfad setzt sich aus allen von Ihnen.In ASP.NET die <appSettings - > Abschnitt ist im Cache-Speicher nach dem 1. Zugriff:
ASP.NET startet die Anwendung neu, wenn es updates auf das web.config-Datei.
Ich denke, dass die web -.config-Cache im Arbeitsspeicher (in-Objekt-Instanzen aus dem System.Web.- Konfiguration). Diese neu geladen werden, wenn die .config Datei verändert (und damit das zurückladen Ihrer web-app).
Schlagen diese Objekte ist unwahrscheinlich, um Ihnen einen performance-Engpass. Aber wenn Sie zu tun haben, analysieren etc, möchten Sie vielleicht zu halten, die der analysierten Objekte.
[Extra] ich guter Praxis (denke ich zumindest) ist das erstellen von statischen Eigenschaften in Ihrer global.asax.cs-Datei für Ihr appsettings. Sie instanziieren können diese Eigenschaften in der application_start-Methode und verwenden Sie Sie durch Ihre web-app. Dies verhindert, dass Sie von der Verwendung von hart-codierten string (Konfigurationsdaten) im gesamten code.
Ist es im Arbeitsspeicher zwischengespeichert. Zwischenspeicherung auf der Festplatte nicht viel Sinn machen für etwas, das oft aufgerufen werden und ist bereits in einem format, wo man es drehen kann, in einer leicht gespeicherten Daten Struktur. Mein Rat wäre, um frei darauf zugreifen, wie wird es sein, so schnell, wie irgendein Schema, Sie kommen mit der Speicherung und wahrscheinlich schneller.
Mein Rat wäre, es zu benutzen, nur wie anyother variable aus dem einfachen Grund, dass die Daten zwischengespeichert werden. Ein wenn Sie das erstellen von statischen Variablen in global.asax Sie zwingen, sich selbst mehr code schreiben. Egal, wie Sie geplant sind, ist es sehr wahrscheinlich, dass Sie hinzufügen von Variablen in der appconfig Häufig während der Entwicklungsphase.
Gibt es 2 Arten von Caching in ASP .NET.
Anwendung Caching - interne Objekt-cache basiert auf
memorylimitation, Fristen und andere Abhängigkeit
Seitenausgabe-Caching - gerenderte Seite-cache auf dem server. Beide
sind Speicher basiert; keine Datenträger.