现在的位置: 首页 > 综合 > 正文

ASP.NET页面和控件缓存

2013年06月25日 ⁄ 综合 ⁄ 共 1352字 ⁄ 字号 评论关闭

页面缓存:
  给页面添加<%@ OutputCache Duration="60" VaryByParam="none"%> 标签就可以启用页面缓存,这样整个页面的内容都会被缓存,页面中的ASP.Net代码、数据源在缓存期间都不会被运行,而是直接输出缓存的页面内容。Duration表示缓存时间,以秒为单位,超过这个时间则缓存失效,再次生成之后会再缓存60秒,以此类推。在Page_load出设置断点,修改数据库数据后,可以测试其效果。
  缓存是针对所有这个页面的访问者。这样1个访问者和1万个访问者,一次访问和一万次访问对数据库的压力都是一样的。  
  VaryByParam的作用是根据不同的参数设置不同的缓存,如果设为none则表示不理会参数。例如ViewNews.aspx?id=1,ViewNews.aspx?id=2,是两个不同的新闻页面,但是如果VaryByParam=none,则只是缓存了第一个访问的新闻的页面,其他新闻页面查看的时候看到的都将会是缓存。所以我们可以设置VaryByParam=“id”,则会根据不同新闻的id设置不同的缓存。多个参数用逗号隔开 VaryByParam=“id,number”。如果想
让任何不同的查询字符串都创建不同的缓存,则设置VaryByParam=“*”,一般情况下这样设置就足够用了。
在Webusercontrol中也可以像设置页面缓存一样设置控件的缓存。

数据源的缓存可以直接在属性列表中设置。CacheDuration="60" EnableCaching="True"

 

错误页的设置:
<customErrors mode="RemoteOnly" defaultRedirect="~/Common/NoOperate.aspx">
<error statusCode="403" redirect="~/NoAccess.htm"/>
<error statusCode="404" redirect="~/FileNotFound.htm"/>
</customErrors>
customErrors mode="On" 这个模式,指的是错误页开放模式,有on,off,RemoteOnly,三个值,On表示对所有人开放错误页导向功能,off是关闭错误页导向,RemoteOnly表示对外部访问者开放,但是在服务器上访问的时候还是原始报错信息,方便发现错误!
错误分好多种类型。如403,404,代码错误等。如果是用户敲错地址,资源没找到错误,只需要提示错误。但是如果代码出错了,则需要记下来。这时候就需要用到。aspx页面的错误页,动态将错误信息写到日志中去。如果要在错误页中拿到异常对象,必须设置customErrors中设置redirectMode="ResponseRewrite",因为默认是客户端重定向,在错误页面中就拿不到异常对象了。

Exception ex = HttpContext.Current.Server.GetLastError();//得到错误信息。 
File.AppendAllText(Server.MapPath("~/Error/Error.txt"),ex.Message+ex.StackTrace+DateTime.Now);//保存错误信息

抱歉!评论已关闭.