Wie Cache in ASP.NET mit Visual Basic .NET

Zusammenfassung

Dieser Artikel beschreibt Methoden steuern, wie ASP.NET Web Pages und Datenobjekte zwischenspeichert. Durch Zwischenspeichern, vermeiden Sie erneut Informationen bei späteren Anfragen. Zwischenspeichern ist ein wichtiges Verfahren für die Erstellung von hochleistungsfähigen und skalierbaren Serveranwendungen. In der ersten Anforderung der Seite können Sie Datenobjekte, Seiten oder Teile der Seite im Arbeitsspeicher speichern. Sie können diese Elemente auf dem Server, auf dem Proxyserver oder im Browser speichern.

zurück zum Anfang

Weitere Informationen

ASP.NET stellt einfache Methoden steuern Zwischenspeichern. @ OutputCache -Direktive können Sie die Steuerung des Seitenausgabe-caching in ASP.NET. Verwenden Sie HttpCachePolicy -Klasse zum Speichern beliebiger Objekte wie Datasets in den Arbeitsspeicher des Servers. Sie können den Cache in den Clientbrowser, Proxyserver und Microsoft-Internetinformationsdienste (IIS) speichern. Cache-Control-HTTP-Header verwenden, können Sie das Zwischenspeichern steuern.

Weitere Informationen über ASP.NET Ausgabecaching klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
308516 wie Steuerung des Seitenausgabe-Caching in ASP.NET mit Visual Basic .NET
zurück zum Anfang

ASP.NET Cacheseiten

Sie können mithilfe der @ OutputCache -Direktive oder programmgesteuert mithilfe von Code mithilfe von Visual Basic .NET oder Visual C# .NET Zwischenspeichern. @ OutputCache -Direktive enthält ein Standortattribut . Dieses Attribut bestimmt den Speicherort für das zwischengespeicherte Element. Sie können einen der folgenden Speicherorte angeben:
  • Alle - Hiermit Ausgabecache in den Client Browser auf den Proxy-Server (oder einen anderen Server), die Teil der Anforderung oder der Server, auf dem die Anforderung verarbeitet, werden. Standardmäßig
    Alle ausgewählt ist.
  • Client - Ausgabecache auf dem Clientbrowser gespeichert.
  • Downstream - Cache-fähige Geräte (außer dem Ursprungsserver), die Teil der Anforderung sind den Ausgabecache gespeichert.
  • Server - Ausgabecache auf dem Webserver gespeichert.
  • Keine - diese deaktiviert den Ausgabecache.

Im folgenden werden Codebeispiele für die @ OutputCache -Direktive und entsprechende programmgesteuerte Code.
  • Den Ausgabecache für eine bestimmte Zeitdauer speichern

    Deklarative Ansatz:
    <%@ OutputCache Duration="60" VaryByParam="None" %>

    Programmgesteuerte Ansatz:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))Response.Cache.SetCacheability(HttpCacheability.Public)
  • Den Ausgabecache auf dem Browserclient speichern, von dem die Anforderung stammt

    Deklarative Ansatz:
    <%@ OutputCache Duration="60" Location="Client" VaryByParam="None" %>

    Programmgesteuerte Ansatz:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))Response.Cache.SetCacheability(HttpCacheability.Private)

  • Um den Ausgabecache auf jedem cachefähigen HTTP 1.1-Gerät zu speichern, einschließlich der Proxy-Server und der Client, von dem die Anforderung stammt


    Deklarative Ansatz:
    <%@ OutputCache Duration="60" Location="Downstream" VaryByParam="None" %>

    Programmgesteuerte Ansatz:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))Response.Cache.SetCacheability(HttpCacheability.Public)
    Response.Cache.SetNoServerCaching()
  • Den Ausgabecache auf dem Webserver speichern

    Deklarative Ansatz:
    <%@ OutputCache Duration="60" Location="Server" VaryByParam="None" %>

    Programmgesteuerte Ansatz:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))Response.Cache.SetCacheability(HttpCacheability.Server)

  • Zwischenspeichern die Ausgabe für jede HTTP-Anforderung, die mit einer anderen Stadt

    Deklarative Ansatz:
    <%@ OutputCache duration="60" varybyparam="City" %>

    Programmgesteuerte Ansatz:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))Response.Cache.SetCacheability(HttpCacheability.Public)
    Response.Cache.VaryByParams("City") = true

    VaryByCustom -Attribut, das Attribut VaryByHeader und VaryByParam -Attribut in der @ OutputCache -Direktive stellt die HttpCachePolicy -Klasse die VaryByHeaders -Eigenschaft und der VaryByParams -Eigenschaft und die SetVaryByCustom -Methode.
zurück zum Anfang

Client und Proxy Caching deaktivieren

Zum Deaktivieren der Ausgabecache einer ASP.NET Webseite an Client an Proxy Speicherort Attributwert auf noneeinstellen und VaryByParam Wert auf keine @ OutputCache -Direktive festgelegt. Verwenden Sie die folgenden Codebeispiele Client und Proxy caching deaktivieren.
  • Deklarative Ansatz:
    <%@ OutputCache Location="None" VaryByParam="None" %>
  • Programmgesteuerte Ansatz:
    Response.Cache.SetCacheability(HttpCacheability.NoCache)
zurück zum Anfang

Beliebige Cacheobjekte im Arbeitsspeicher des Servers

ASP.NET enthält einen leistungsfähigen und einfach caching-Mechanismus, mit denen Sie Objekte speichern, die umfangreiche Serverressourcen im Speicher erstellen. Die Cache -Klasse implementiert diese Methode. Instanzen werden für jede Anwendung privat und die Lebensdauer der entsprechenden Anwendung gebunden ist. Zwischenspeichern von beliebigen Objekten in ASP.Net mithilfe der Cache -Klasse folgendermaßen Sie vor:
  1. Erstellen Sie eine neue ASP.NET mit Visual Basic .NET.
  2. Standardmäßig wird "WebForm1.aspx" erstellt.
  3. Ersetzen Sie in der HTML-Ansicht von WebForm1.aspxden vorhandenen Code durch folgenden Beispielcode:
    <%@ Import Namespace="System.Data.SqlClient" %><%@ Import Namespace="System.Data" %>
    <HTML>
    <script language="vb" runat="server">

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Dim Source As DataView

    'Retrieve the DataView object from the Cache class. If it does not exist, add the DataView object to the Cache class.

    Source = CType(Cache("MyDataSet"), DataView)

    If Source Is Nothing Then

    Dim myConnection As SqlConnection = New SqlConnection("Server=ServerName; database=Pubs; user id=UID; password=PWD;")
    Dim myCommand As SqlDataAdapter = New SqlDataAdapter("select * from Authors", myConnection)
    Dim ds As DataSet = New DataSet()
    myCommand.Fill(ds, "Authors")

    Source = New DataView(ds.Tables("Authors"))
    Cache("MyDataSet") = Source
    CacheMsg.Text = "Dataset created explicitly"

    Else

    CacheMsg.Text = "Dataset retrieved from cache"

    End If

    ' Bind the DataView object to DataGrid.
    MyDataGrid.DataSource = Source
    MyDataGrid.DataBind()

    End Sub

    </script>
    <body>
    <form method="GET" runat="server" ID="Form1">
    <h3><font face="Verdana">Caching Data</font></h3>
    <ASP:DataGrid id="MyDataGrid" runat="server"
    Width="700"
    BackColor="#ccccff"
    BorderColor="black"
    ShowFooter="false"
    CellPadding=3
    CellSpacing="0"
    Font-Name="Verdana"
    Font-Size="8pt"
    HeaderStyle-BackColor="#aaaad" />
    <p>
    <i><asp:label id="CacheMsg" runat="server"/></i>
    </form>
    </P>
    </body>
    </HTML>
    Hinweis Ersetzen Sie die Werte für ServerName UIDund PWD im Beispielcode für das SqlConnection -Objekt mit SQL Server Name, Benutzer-ID und Kennwort.
  4. Klicken Sie im Menü Debuggen auf Starten , um die Anwendung auszuführen.

    Hinweis Wenn Sie die Anwendung neu starten, wird das zwischengespeicherte Objekt neu erstellt.
zurück zum Anfang

Referenzen

Klicken Sie für weitere Informationen auf die folgenden Artikelnummern, um die betreffenden Artikel in der Microsoft Knowledge Base anzuzeigen:
234067 wie Caching in InternetExplorer verhindern
247404 wie Cache-Control-HTTP-Header ändern, wenn Sie IIS verwenden
311006 wie Web-Caching in Windows 2000 zu verhindern
247389 IIS: Zwischenspeichern von bestimmten MIME-Typen deaktivieren
313561 wie HTTP-Header Inhaltsablaufs in IIS


Weitere Informationen finden Sie auf der folgenden Microsoft-Website:zurück zum Anfang

Fehler #: 4123 (Content Maintenance)
Eigenschaften

Artikelnummer: 811431 – Letzte Überarbeitung: 16.01.2017 – Revision: 1

Feedback