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 导致页面下载的解决办法,如果对你有所帮助,请留言或点击推荐

 


你可能感兴趣的:(OutputCache 导致页面下载的解决办法)