View State Caching für die ASP.NET-Leistungsoptimierung

ASP.NET View State ist ein leistungsstarkes Feature von ASP.NET, das einen clientseitigen Zustandsverwaltungsmechanismus bereitstellt. Es hilft, Seiten- und Steuerwerte zwischen vollständigen Roundtrips für Clientanforderungen beizubehalten. Dies gibt eine zustandsvolle Programmierfähigkeit über ein zustandsloses Protokoll wie HTTP.

ASP.NET View State wird in einem verborgenen Feld auf der Seite als codierter Base64-String als Teil jeder an den Client gesendeten Antwort gespeichert und wird auch vom Client als Teil eines Postbacks an den Server zurückgegeben.

<input id = "__VIEWSTATE"
       type = "hidden"
       name = "__VIEWSTATE"
       value = "/wEPDwUJNzg0MDMxMDA1D2QWAmYPZBYCZg9kFgQCAQ9kFgICBQ9kFgJmD2QWAgIBD
              xYCHhNQcm2aW91c0NvbnRyb2xNb2RlCymIAU1pY3Jvc29mdC5TaGFyZVBvaW50Lld
              lYkNvbnRyb2xzLlNQQ29udHJbE1vZDA1XzRlMjJfODM3Y19kOWQ1ZTc2YmY1M2IPD
              2…=="/>

Obwohl sehr nützlich, ASP.NET View State bringt einige Probleme mit sich, die Sie verstehen und lösen müssen. Sie werden unten besprochen.

  1. ASP.NET View State ist oft schwer: Wenn Ihre ASP.NET-Anwendung auf ihren Seiten viele reichhaltige und umfangreiche Steuerelemente und Widgets enthält, werden viele Daten zwischen Ihrem Browser und dem Webserver hin und her übertragen. Diese hohe Nutzlast führt zu Leistungseinbußen der ASP.NET-Anwendung und hohen Bandbreitenkosten.
  2. ASP.NET View State ist ein Sicherheitsrisiko: Es kann auch ein Sicherheitsrisiko darstellen, wenn vertrauliche Daten als Teil des Anzeigestatus an den Client gesendet werden. Diese Daten sind anfällig für Angriffe und können von einem Angreifer manipuliert werden, was eine ernsthafte Sicherheitsbedrohung darstellt. Sie können die verschlüsseln ASP.NET View State Daten, aber dies wird wiederum Leistungseinbußen mit sich bringen.

NCache für ASP.NET View State

Eine Möglichkeit, die Sie lösen können ASP.NET View State Probleme ist durch die Speicherung der tatsächlichen ASP.NET View State auf dem Webserver und sendet stattdessen ein eindeutiges Token (oder eine ID) an den Browser, damit der Browser dieses Token das nächste Mal an den Webserver zurücksenden kann. Der Webserver verwendet dann dieses Token, um das Recht zu finden ASP.NET View State in seinem Laden. Unten sehen Sie ein Beispiel für ein Token, das anstelle von verwendet wird ASP.NET View State.

<input type = "hidden"
       name = "__VIEWSTATE"
       id = "__VIEWSTATE"
       value = "vs:cf8c8d3927ad4c1a84da7f891bb89185" />

Obwohl ASP.NET View State auf dem Webserver gespeichert werden kann, ist es nicht ideal, wenn Ihre ASP.NET-Anwendung in einer Webfarm mit Lastenausgleich ausgeführt wird, da die nächste HTTP-Anforderung möglicherweise an einen anderen Webserver gesendet wird. Daher müssen Sie die speichern ASP.NET View State in einem gemeinsam genutzten Speicher, auf den von allen Webservern aus zugegriffen werden kann.

Der beste Ort zum Aufbewahren ASP.NET View State auf dem Server ist in a verteilter Cache. Auf diese Weise haben Sie nicht nur einen gemeinsamen Speicher für alle Webserver, sondern auch einen extrem schneller und skalierbarer In-Memory-Speicher im Vergleich zur SQL Server-Datenbank oder anderen Speicheroptionen.

Verteilte Cache-Speicherung ASP.NET View State - NCache
Abbildung 1: Verteilte Cache-Speicherung ASP.NET View State

NCache ist ein extrem schneller und skalierbarer verteilter Cache für .NET/.NET Core, Java und Node.js. Es lässt Sie auch speichern ASP.NET View State um die oben beschriebenen Probleme zu lösen.

Konfigurieren Sie ASP.NET ViewState in NCache

Zu konfigurieren ASP.NET View State du musst das installieren AspNet.ViewState.NCache NuGet-Paket als Voraussetzung. Dann müssen Sie App_browser-Datei konfigurieren mit NCache Steckseitenadapter u Konfigurieren Sie die Datei web.config in Ihrer Anwendung, um den Konfigurationsabschnitt für den Ansichtsstatus zu registrieren und die Einstellungen für den registrierten Konfigurationsabschnitt anzugeben. Beziehen Sie sich auf die NCache ASP.NET View State docs zur schrittweisen Konfiguration.

Wenn derselbe Cache für das View State-Caching und andere Daten verwendet wird, ist dies möglich Rufen Sie die View State-Daten ab durch die Nutzung NC_ASP.net_viewstate_data taggen als:

Hashtable allViewStateData = cache.GetByTag(new Tag("NC_ASP.net_viewstate_data"));

Vorteile des Cachings ASP.NET View State auf dem Server

Sie erhalten die folgenden Vorteile, wenn Sie Ihre ASP.NET View State in NCache.

  1. ASP.NET-Leistung verbessern: NCache reduziert die Anfrage/Antwort-Nutzlast, was die Gesamtanfragezeit verbessert.
  2. Reduzieren Sie die Bandbreitenkosten: Eine geringere Nutzlast bedeutet auch eine erhebliche Reduzierung der Kosten für den Bandbreitenverbrauch. Dadurch könnten Sie viel Geld sparen.
  3. Sicherheit: Nun ASP.NET View State verschlüsselter String nicht an den Browser gesendet, es bestehen keine Sicherheitsrisiken mehr.
  4. Schnell & skalierbar ASP.NET View State Lagerung: NCache ist ein extrem schneller und skalierbarer verteilter Cache. Dies bedeutet, dass Ihr ASP.NET niemals mit Skalierbarkeitsengpässen konfrontiert wird ASP.NET View State Lagerung.
  5. ASP.NET View State Zuverlässigkeit durch Replikation: NCache repliziert alle Daten im verteilten Cache intelligent. Das bedeutet, dass Sie nichts verlieren ASP.NET View State auch wenn ein Cache-Server ausfällt.

Fortgeschrittener ASP.NET View State Caching-Funktionen in NCache

NCache bietet Ihnen eine Vielzahl von Funktionen für das Caching und die Verwaltung ASP.NET View State. Nachfolgend finden Sie eine Liste davon.

  1. Mindestgrößenschwelle: NCache ermöglicht es Ihnen, Geben Sie eine Mindestgröße von an ASP.NET View State. Jeder kleinere Ansichtsstatus wird nicht zwischengespeichert. Dadurch können Sie nur den schweren Ansichtsstatus zwischenspeichern.
  2. Link ASP.NET View State mit Sitzungsstatus: Du kannst dich Link an ASP.NET View State mit Ihrem Sitzungsstatus. Auf diese Weise werden nach Ablauf der Benutzersitzung alle seine Ansichtszustände automatisch aus dem Cache entfernt.
  3. Schwellenwert für die maximale Anzahl auf Seitenebene: Sie können konfigurieren, wie viele Ansichtszustände für eine bestimmte Seite auf FIFO-Weise beibehalten werden sollen. Auf diese Weise wird der älteste Ansichtsstatus entfernt, wenn ein neuer Ansichtsstatus für diese Seite erstellt wird. Dies optimiert Ihren Speicherverbrauch im Cache-Server, indem Ansichtszustände, die Sie nie benötigen würden, nicht zwischengespeichert werden.
  4. Schwellenwert für maximale Anzahl auf Sitzungsebene: Ähnlich wie auf Seitenebene ist dies möglich Geben Sie die maximale Anzeigestatusanzahl für eine Benutzersitzung an in einer FIFO-Weise mit maxViewStatesPerSession. Auf diese Weise wird der älteste Ansichtsstatus entfernt, wenn ein neuer Ansichtsstatus erstellt wird.
  5. Einstellungen auf Seiten- und Sitzungsebene: Sie können alle oben genannten Einstellungen für jede Seite anders festlegen oder sie für alle Sitzungen gleich halten.

Zusammenfassung

Wie du gesehen hast, NCache erlaubt Ihnen zu cachen ASP.NET View State auf dem Server, um Ihre ASP.NET-Leistung zu optimieren. Zusätzlich, NCache bietet Ihnen eine Vielzahl von Funktionen zur Verwaltung Ihrer ASP.NET View State effizienter im Cache. Auf diese Weise können Sie komplexe Anwendungen entwickeln und diese Funktionen verwenden, um eine Vielzahl von Szenarien zu bewältigen.

Was macht man als nächstes?

© Copyright Alachisoft 2002 - Alle Rechte vorbehalten NCache ist eine eingetragene Marke der Diyatech Corp.