1. 页面中如何定义缓存
<%@ OutputCache Duration="15" VaryByParam="none" %>
2. 设置应用程序级别缓存
如果已经有一个 Web.config 文件,请转到步骤 4 。
在解决方案资源管理器中,右击网站的名称,然后单击“添加新项”。
在“添加项”对话框中,单击“ Web 配置文件”,然后单击“添加”。
请确定使用的名称为 Web.config 。
将以下 XML 添加为 system.web 元素的子项:
<!-- caching section group -->
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="AppCache1" enabled="true" duration="60"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
保存文件,然后将其关闭。
打开或切换到刚才使用的页,然后切换到“源”视图。
将 @ OutputCache 指令更改为以下内容:
<%@ OutputCache CacheProfile="AppCache1" VaryByParam="none" %>
3. 根据参数缓存
1. 打开或切换到使用的页。
2. 切换到“ 设计” 视图。
3. 从工具箱的“ 标准” 组中,将 TextBox 控件拖动到页面上,并将其 ID 设置为“Color” 。
4. 将 Button 控件拖动到页面上,保留默认值 Button1 。
5. 将 Button 控件的 Text 属性设置为“Change Color” 。
双击 Button 控件以创建 Click 事件处理程序。
protected void Button1_Click(Object sender, System.EventArgs e)
{
Label1.BackColor =
System.Drawing.Color.FromName(Server.HtmlEncode(Color.Text));
}
7. 将 form 元素的 defaultbutton 属性设置为“Button1” 。
这会导致按下 Enter 键时将引发按钮的 Click 事件处理程序。
8. 用下面的版本替换 @ OutputCache 指令:
<%@ OutputCache Location="Server" Duration="60" VaryByParam="Color" %>
9. 按 Ctrl+F5 运行该页。
10. 在文本框中键入颜色名称,如“ 红” 或“ 蓝” ,然后单击“ 更改颜色” 。
ASP.NET 缓存使用您指定的颜色的页面版本。
11. 多次刷新页面。
如果没有键入新的颜色名称,则日期和时间将至少有一分钟不变(在 @ OutputCache 指令的 Duration 属性中指定)。
12. 输入新颜色,如“ 绿” 或“ 紫” ,然后提交页。
这次将看到时间和新颜色一起更新。
除了使用页声明,还可以以编程方式指定缓存。例如,在 Page_Load 方法中,可以访问 HttpCachePolicy 类(通过 Page.Response.Cache ),并相应设置值和行为。
4.SQL Server 启用缓存通知
1. 在 Windows“ 启动” 菜单中,指向“ 所有程序” ,指向“ 附件” ,然后单击“ 命令提示符” 以打开命令提示窗口。
2. 在磁盘驱动器中找到 Aspnet_regsql.exe 可执行文件。此文件随 .NET Framework 2.0 版安装在下面的位置:
%windir%/Microsoft.NET/Framework/FrameworkVersion
确保 %windir% 表示 Windows 目录并且 .NET Framework 版本为 2.0 或更高版本。该路径可能看起来类似于下面这样:
C:/WINDOWS/Microsoft.NET/Framework/v2.0.40217
3. 使用下面的命令为 Northwind 数据库中的 Employees 表启用缓存通知:
aspnet_regsql.exe -S <Server> -U <Username> -P <Password> -ed -d Northwind -et -t Employees
说明: |
您需要具有管理特权,或管理帐户和密码。如果没有此信息,请与数据库管理员联系。 |
Enabling the table for SQL cache dependency.
..
Finished.
<%@ OutputCache Duration="3600" SqlDependency="Northwind:Employees" VaryByParam="none" %>