婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 一個伴隨ASP.NET從1.0到4.0的OutputCache Bug介紹

一個伴隨ASP.NET從1.0到4.0的OutputCache Bug介紹

熱門標簽:浙江外呼系統怎么安裝 廈門商鋪地圖標注 銅川小型外呼系統運營商 陜西人工外呼系統哪家好 海外地圖標注門市標 山西防封卡電銷卡套餐 云南外呼電銷機器人系統 上海楊浦怎么申請申請400電話 地圖標注多個行程
我們先來一睹這個Bug的風采!

在一個.aspx文件中增加OutputCache設置,代碼如下:
復制代碼 代碼如下:

%@ OutputCache Duration="300" VaryByParam="*"%>

上面的設置表示:緩存5分鐘,根據不同的查詢字符串更新緩存。Location使用的是默認值Any,也就是可以在瀏覽器、代理服務器、Web服務器三個地方進行緩存,在Response Headers中的體現就是Cache-Control:public, max-age=300。(如果你要用CDN加速,Cache-Control就要用public)。

然后,我們在Firefox瀏覽器中訪問這個頁面,并打開Firebug,見下圖:

第一次訪問,返回狀態碼為"200 OK",正常。這里Response Headers中的Vary:Accept-Encoding是因為IIS啟用“動態內容壓縮”產生的,如果不啟用,就不會出現。

這時緩存應該被建立起來了,我們按F5刷新一下瀏覽器,看一下結果,見下圖:

第二次訪問,返回狀態碼為"304 Not Modified",瀏覽器緩存生效,這也是我們期望的。

但是,請注意一下上圖中的Vary:*,它會讓瀏覽器的緩存失效,我們再按一下F5驗證一下。

果然,瀏覽器緩存失效,返回狀態碼變回了200 OK。緩存時間有5分鐘呢,第三次就失效了,這樣的結果顯然不是我們期望的。

上面的測試是在Web服務器上IIS啟用動態內容壓縮(dynamic content compression)的情況下進行的,如果關閉動態內容壓縮,每次請求返回都是200 OK,Vary都是星號。也就是說瀏覽器游覽緩存根本沒起作用。

Bug欣賞完畢,我們進行第二個測試。

將OutputCache的VaryByParam屬性值設置為none:

復制代碼 代碼如下:

%@ OutputCache Duration="600" VaryByParam="none"%>

測試結果顯示,瀏覽器第一次請求之后,接下來在緩存時間內,服務器的響應都是"304 Not Modified",這才是我們想要的效果。

但是,在實際應用中,我們使用VaryByParam="none"很少,用的更多的是為VaryByParam指定對應的值。

所以這個Bug影響很大,增加了服務器負擔,浪費了帶寬。

Bug相關信息

在微軟的官方文檔ASP.NET 4 Breaking Changes中專門提到了這個bug —— "Output Caching Changes to Vary * HTTP Header":

In ASP.NET 1.0, a bug caused cached pages that specified Location="ServerAndClient" as an output–cache setting to emit a Vary:* HTTP header in the response. This had the effect of telling client browsers to never cache the page locally.

In ASP.NET 1.1, the System.Web.HttpCachePolicy.SetOmitVaryStar method was added, which you could call to suppress the Vary:* header. This method was chosen because changing the emitted HTTP header was considered a potentially breaking change at the time. However, developers have been confused by the behavior in ASP.NET, and bug reports suggest that developers are unaware of the existing SetOmitVaryStar behavior.

In ASP.NET 4, the decision was made to fix the root problem. The Vary:* HTTP header is no longer emitted from responses that specify the following directive:

%@OutputCache Location="ServerAndClient" %>

As a result, SetOmitVaryStar is no longer needed in order to suppress the Vary:* header.

In applications that specify Location="ServerAndClient" in the @ OutputCache directive on a page, you will now see the behavior implied by the name of the Location attribute's value – that is, pages will be cacheable in the browser without requiring that you call the SetOmitVaryStar method.

從上面的文檔中我們可以知道這個Bug的歷史:

在ASP.NET 1.0時,如果在OutputCache中設置Location="ServerAndClient",在ASP.NET在響應時會瀏覽器發送Vary:* HTTP header。

在ASP.NET 1.1時,微軟針對這個Bug,提供一個專門的方法System.Web.HttpCachePolicy.SetOmitVaryStar(bool omit),通過SetOmitVaryStar(true)修改HTTP header,去掉Vary:*。

在ASP.NET 4時,微軟鄭重地宣布從根本上解決了這個問題。

而且,文檔中提到這個bug只會出現在Location="ServerAndClient"時。

可是,我用ASP.NET 4的實測試情況是:不僅Location="ServerAndClient"時的Bug沒有解決,而且Location="Any"時也會出現同樣的Bug。

解決方法

解決方法很簡單,只要用ASP.NET 1.1時代提供的System.Web.HttpCachePolicy.SetOmitVaryStar(bool omit)就能解決問題,只需在Page_Load中添加如下代碼:

復制代碼 代碼如下:

protected void Page_Load(object sender, EventArgs e)
{
Response.Cache.SetOmitVaryStar(true);
}

相關文檔

ASP.NET caching tests find a bug with VaryByParam

How to cache asp.net web site for better performance

Microsoft Connect: The ServerAndClient parameter with the OutputCache page directive does not cache on the client, without code

小結
小bug,解決方法也很簡單。但是,如果你不知道這個bug,又會陷入微軟的一個騙局(之前提到一個WCF Client的騙局),不知不覺中浪費了服務器資源與帶寬。

微軟那么有錢,有那么多天才程序員,可是Bug也很難避免,可見開發優秀的軟件是多么具有挑戰性的工作!

補充

ASP.NET MVC 中不存在這個問題。

標簽:孝感 常州 自貢 西雙版納 信陽 朔州 許昌 萊蕪

巨人網絡通訊聲明:本文標題《一個伴隨ASP.NET從1.0到4.0的OutputCache Bug介紹》,本文關鍵詞  一個,伴隨,ASP.NET,從,1.0,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《一個伴隨ASP.NET從1.0到4.0的OutputCache Bug介紹》相關的同類信息!
  • 本頁收集關于一個伴隨ASP.NET從1.0到4.0的OutputCache Bug介紹的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧洲av在线精品| 国产中文一区二区三区| 在线不卡中文字幕播放| 欧美一级日韩不卡播放免费| 亚洲素人一区二区| 国产一区二区三区在线观看精品| 一区二区久久久| 亚洲精品在线免费观看视频| 欧美日韩免费视频| 亚洲女人****多毛耸耸8| 国内精品嫩模私拍在线| 欧美精品在线视频| 久久理论电影网| 亚洲福利一区二区三区| 在线视频国内一区二区| www欧美成人18+| 欧美日韩在线播放三区| 亚洲国产一区视频| 亚洲三级电影全部在线观看高清| 天堂久久久久va久久久久| 欧美亚洲国产一区二区三区va| 日韩一区在线播放| 精品乱码亚洲一区二区不卡| 丁香啪啪综合成人亚洲小说| 午夜欧美一区二区三区在线播放| 精品在线观看视频| 日本va欧美va精品发布| 成人黄色在线网站| 中文字幕一区二区不卡| 欧美丝袜丝nylons| 中文字幕一区二区三区在线播放| 久久久99精品久久| 99久久久久久| 亚洲国产成人高清精品| 久久综合色8888| 一区二区三区在线观看视频| 日韩一区二区三区观看| 中文字幕在线观看不卡视频| 亚洲一级二级三级在线免费观看| 亚洲成人手机在线| 日韩一区二区精品在线观看| 99re视频这里只有精品| 99久久免费视频.com| 蜜臀av性久久久久蜜臀aⅴ流畅 | 中文字幕高清一区| 欧美专区亚洲专区| 精品精品欲导航| 91首页免费视频| 欧美亚洲国产一区二区三区| 欧美日韩视频在线一区二区| 国产+成+人+亚洲欧洲自线| 99精品久久只有精品| 日韩欧美你懂的| 91精品国产乱| 久久久蜜桃精品| 成人爱爱电影网址| 色狠狠一区二区| 国产亚洲精品超碰| 国产三级一区二区三区| 一区二区三区精品久久久| 国产在线视视频有精品| 日本强好片久久久久久aaa| 国产老女人精品毛片久久| 成人视屏免费看| 美女爽到高潮91| 欧美a级理论片| 丝袜亚洲另类欧美| 国产高清不卡一区| 欧美在线免费观看亚洲| 欧美色区777第一页| 国产专区欧美精品| 91麻豆蜜桃一区二区三区| 国产激情精品久久久第一区二区| 国产免费成人在线视频| 日本福利一区二区| 99国产麻豆精品| 亚洲国产精品久久人人爱蜜臀| 亚洲精品在线一区二区| 久久99国产精品久久99| 天堂蜜桃91精品| 国产精品夜夜爽| 欧美日韩午夜精品| 欧美日韩三级视频| 久久夜色精品国产欧美乱极品| 在线免费不卡电影| 91麻豆精品国产91久久久使用方法 | www.亚洲色图| 国产乱码精品1区2区3区| 在线综合亚洲欧美在线视频| 日韩一区二区三区三四区视频在线观看 | 欧美大胆一级视频| 亚洲综合色区另类av| 亚洲高清视频中文字幕| 欧美经典一区二区| 欧美日韩国产小视频在线观看| 激情久久五月天| 成人免费看的视频| 欧美国产精品一区二区三区| 亚洲黄色免费网站| 一区二区在线看| 色综合久久久久网| 亚洲一区二区三区四区五区黄| 欧美三级资源在线| 日韩一级完整毛片| 亚洲一区欧美一区| 国产精品国产自产拍高清av王其| 日韩精品成人一区二区在线| 福利电影一区二区三区| 成人高清免费观看| 韩国精品主播一区二区在线观看| 欧美一区二区三区四区久久| 国产精品亚洲第一区在线暖暖韩国| 久久久精品天堂| 欧美成人精品3d动漫h| 久久久精品tv| 精品久久久久香蕉网| 亚洲bt欧美bt精品| 国产又黄又大久久| 成人国产免费视频| 午夜天堂影视香蕉久久| 久久在线观看免费| 成a人片国产精品| 中文在线免费一区三区高中清不卡| 色8久久人人97超碰香蕉987| 免费不卡在线观看| 国产性天天综合网| 精品一区二区在线看| 日韩av电影天堂| 国产美女主播视频一区| 国产成人综合亚洲91猫咪| 972aa.com艺术欧美| 国产精品色哟哟网站| 亚洲福利一区二区| 成人精品国产一区二区4080| 狠狠色丁香久久婷婷综合_中| 美女www一区二区| 成人app软件下载大全免费| 久久精品国产亚洲5555| 777亚洲妇女| 337p亚洲精品色噜噜噜| 国产精品一区在线观看你懂的| 亚洲欧洲av在线| 粉嫩av一区二区三区粉嫩| 日本一区二区三区在线观看| 久久久国产综合精品女国产盗摄| 久久久影院官网| 香蕉成人伊视频在线观看| 精品一区二区久久久| 亚洲综合小说图片| 国产精品乱码人人做人人爱| 日本在线观看不卡视频| 毛片av一区二区| 亚洲妇女屁股眼交7| 免费欧美在线视频| 欧美性生活一区| 久久综合色婷婷| 99精品国产99久久久久久白柏 | 精品国产三级a在线观看| 欧美亚州韩日在线看免费版国语版| 日本不卡一区二区三区 | 99久久精品国产观看| 亚洲欧美视频在线观看| 日本乱码高清不卡字幕| 91亚洲国产成人精品一区二区三| 国产91综合网| 日韩在线a电影| 国产午夜精品理论片a级大结局| 色哟哟一区二区| 欧美一区在线视频| 91麻豆国产精品久久| 亚洲欧美电影院| 精品一区二区国语对白| 中文字幕一区二区三区色视频| 亚洲国产sm捆绑调教视频| 一区二区三区丝袜| 99久久er热在这里只有精品15| 麻豆成人久久精品二区三区红 | 欧美日韩免费观看一区三区| 日韩视频在线一区二区| 国产成人免费视频| 美美哒免费高清在线观看视频一区二区 | 久久99精品网久久| 国产视频一区二区在线观看| 一区二区三区四区不卡在线| 一区二区三区蜜桃网| 成人免费视频caoporn| 亚洲欧美日韩国产手机在线| 日韩专区在线视频| 亚洲欧美区自拍先锋| 欧美日韩另类一区| 国产一区二区看久久| 日韩激情av在线| 日韩一级在线观看| 欧美一区二区视频在线观看2022| 欧美高清在线精品一区| 久久人人爽爽爽人久久久| 自拍偷拍欧美激情| 午夜久久久久久| 99久久精品国产毛片| 成人午夜视频在线观看|