OutputCache 导致页面下载的解决办法 - 寻自己 - 博客园

来源: OutputCache 导致页面下载的解决办法 – 寻自己 – 博客园

ASP.NET 中的 OutputCache  非常的有用,但是加上后,老是碰见浏览器下载页面的情况,让人十分费解。最后,在 search 了半天后,发现的解决方案都是加上 VaryByHeader=”Content-Type”  这个。但是加上之后,发现不起作用,还仍然会下载。

最后,再请教dudu 之后,给出了一个很完美的解决方案,该解决方案就是重写 Global.asax 中的 Application_BeginRequest 方法,判断页面类型,如果为 “text/vnd.wap.wml” ,则不缓存页面,经过高访问量的测试,这个方法是可靠可行的,没有性能问题的,可以放心大胆的使用

代码:

复制代码
protected void Application_BeginRequest(Object sender, EventArgs e)

{

//use outputcache

string acceptTypes = Request.Headers[“Accept”];

if(!string.IsNullOrEmpty(acceptTypes)&&acceptTypes.ToLower().Contains(“text/vnd.wap.wml”))

{

Response.Cache.SetCacheability(HttpCacheability.NoCache);

}

}

复制代码

使用上之后,服务器的 CPU 占用,立即降低下来了,下面备注下使用 OutPutCache 的好处:直接从内存读页面,页面响应速度更快,用户体验更好;大大的降低了服务器的压力,特别是对于高并发的网站,特别是 CPU 的压力;减少了 DB 的强求,降低 DB(数据库)的压力。

以上就是  OutputCache 导致页面下载的解决办法,如果对你有所帮助,请留言或点击推荐

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏