确切的 英文:如何使用 Visual C#.NET 在 ASP.NET 中的缓存

来源:百度文库 编辑:偶看新闻 时间:2024/05/04 12:55:42
本文分步介绍了如何控制缓存的网页和 ASP.NET 中的数据对象。 当您缓存网页时,您避免进行更高版本的请求时重新创建的信息。缓存是重要的技术,用于构建高性能和可缩放的服务器应用程序。 第一个页请求时,您可以将数据对象、 页或内存页的一部分存储。您可以将这些项目存储在 Web 服务器上,代理服务器的服务器上或在浏览器上。

ASP.NET 提供更容易的方法控制缓存。 可以使用 @ OutputCache 指令来控制页输出缓存在 ASP.NET 中。 使用 HttpCachePolicy 类来存储如数据集到服务器内存之类的任意对象。 可以将缓存存储在应用程序(如客户端浏览器、 代理服务器和 Microsoft Internet Information Services (IIS)。 通过 Cache-Control HTTP 标题可以控制缓存。

有关 ASP.NET 输出缓存的详细信息,单击下面的文章编号,以查看 Microsoft 知识库中的文章:308375  (http://support.microsoft.com/kb/308375/ ) 如何控制页输出缓存在 ASP.NET 中使用 Visual C#.NET

缓存 ASP.NET 页


您可以使用缓存, @ OutputCache 指令,或可以缓存以编程方式通过代码使用 Visual Basic.NET 或 Visual C#.NET。 @ OutputCache 指令包含一个 位置 属性。此属性确定缓存的项的位置。 您可以指定以下位置:
  • 任何 为此存储客户端浏览器,代理服务器 (或任何其他服务器)上参与请求中, 或处理请求的服务器上的中的输出缓存。 默认情况下, 任何 处于选中状态。
  • 客户端 此存储客户端浏览器中的输出缓存。
  • Downstream -此存储中 (而不是原始服务器)参与请求任何具有缓存功能设备的输出缓存。
  • 服务器 -这在将输出缓存存储在 Web 服务器上。
  • -此关闭输出缓存。

以下是为 @ OutputCache 指令和等效的编程代码的代码示例。
  • 存储输出缓存持续时间

    声明性的方法:
    <%@ OutputCache Duration="60" VaryByParam="None" %>

    编程的方法:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); Response.Cache.SetCacheability(HttpCacheability.Public);
  • 存储在浏览器客户端请求的来源的输出缓存

    声明性的方法:
    <%@ OutputCache Duration="60" Location="Client" VaryByParam="None" %>

    编程的方法:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); Response.Cache.SetCacheability(HttpCacheability.Private);
  • 存储输出缓存,包括代理服务器和客户端的请求任何 HTTP 1.1 缓存的设备上

    声明性的方法:
    <%@ OutputCache Duration="60" Location="Downstream" VaryByParam="None" %>

    编程的方法:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.SetNoServerCaching();
  • 存储在 Web 服务器上的输出缓存

    声明性的方法:
    <%@ OutputCache Duration="60" Location="Server" VaryByParam="None" %>

    编程的方法:
    TimeSpan freshness = new TimeSpan(0,0,0,60); DateTime now = DateTime.Now; Response.Cache.SetExpires(now.Add(freshness)); Response.Cache.SetMaxAge(freshness); Response.Cache.SetCacheability(HttpCacheability.Server); Response.Cache.SetValidUntilExpires(true);
  • 缓存为每个 HTTP 请求到达时使用不同的城市的输出:

    声明性的方法:
    <%@ OutputCache duration="60" varybyparam="City" %>

    编程方法:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.VaryByParams["City"] = true;
    VaryByCustom 属性,该 VaryByHeader 属性或 @ OutputCache 指令中的 VaryByParam 属性,该 HttpCachePolicy 类提供 VaryByHeaders 属性和 VaryByParams 属性和 SetVaryByCustom 方法。

关闭客户端和代理缓存

位置 属性值设置为 ,并将 VaryByParam 值设置为 @ OutputCache 指令中。 使用下面的代码示例关闭客户端和代理缓存。

  • 声明性的方法:
    <%@ OutputCache Location="None" VaryByParam="None" %>
  • 编程的方法:
    Response.Cache.SetCacheability(HttpCacheability.NoCache);

缓存服务器内存中的任意对象

Cache 类实现此方法。 实例是专用于每个应用程序,并且生存期与相应的应用程序。 要通过使用 缓存 类缓存 ASP.Net 中任意的对象,请按下列步骤操作:
  1. 通过 Visual C#.NET 中创建新的 ASP.NET Web 应用程序。
  2. 情况默认,创建 WebForm 1.aspx
  3. WebForm 1.aspx 的 HTML 视图,在现有代码替换下面的示例代码:
    <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %>    

    Caching Data

    请注意 替换值的 ServerNameUIDPWD SqlConnection 对象的示例代码中您 SQL Server 名称、 用户 ID 和密码。
  4. 调试 菜单中上, 单击 开始 运行该应用程序。

    请注意 在重新启动应用程序时, 缓存是重新创建。