Cache Manager 快取總管

Cache Manager 快取總管-管理 Web 網站快取物件的好幫手

大家都知道在開發網頁的時候因為 Server 的數量遠不及 Client 所以經常會使用到 Cache 技巧,不管是 OutCache 或是 RunTime Cache 都是降低 Server 負載的好方式,但是你有沒有想過到底 Cache 放對東西了嗎?或是放了太多一樣的東西,如果快取用的不好不但沒有幫助到效能反而可能拖累整個 Server ,因此 demo 要推薦一個早在 2006 年就推出的好東西,它可以讓我們方便快速的看到快取的狀態和內容進而調整快取的數量與值。
// //

●首先就是到官網下載後參考到你的專案內(記得要選取複製到本機)


●然後開啟專案的 Web.Config 把 CacheManager 註冊進去

IIS 6 註冊法

1
2
<addverb="*"path="CacheManager.axd"
     type="AspAlliance.CacheManager.CacheManagerPageFactory,AspAlliance.CacheManager"/>


 

IIS 7 註冊法

1
<addname="CacheManager"verb="*"path="CacheManager.axd"type="AspAlliance.CacheManager.CacheManagerPageFactory,AspAlliance.CacheManager"/>


●這樣子就可以直接連到 http://localhost/CacheManager.axd 使用,首頁就長這樣

你可以在這頁看到伺服器還剩下多少記憶體和你已經使用了幾個快取物件(RunTime Cache)


●當你按下了【Clear Application Cache】就會將伺服器上所有的快取刪除(RunTime Cache)


●當您按下了【View Cache Entries】可以查看快取物件的型態,如果該物件是可以序列化還可以看到內容值


●最後一個選項是【Remove Page Output Cache】按下去後輸入網址就可以清除 Output Cache


注意事項看了以上的功能你一定也覺得這個 Cache Manager 相當實用,但你也可能發現了一件事情,任何人都可以進到這工具頁面,這是相當不安全的雖然他只能清快取,但如果開發人員不小心將敏感資訊存放在快取物件中那就問題大了,所以我們必須要增加一下它的安全性,官網有個最簡單也還滿有效的解決方案,那就是改檔名….你可以將預設檔名改掉這樣別人就不好猜,猜不到也就進不來了…..。

●當然你可以使用更正統更安全的作法設定location區塊,你可以限制有登入的才可以看

1
2
3
4
5
6
7
<locationpath="CacheManager.axd">
  <system.web>
    <authorization>
      <denyusers="?"/>
    </authorization>
   </system.web>
 </location>

●或是更進階一點設定只有最高管理者角色的使用者才可以看

1
2
3
4
5
6
7
8
<locationpath="CacheManager.axd">
    <system.web>
      <authorization>
        <allowroles="Admin"/>
        <denyusers="*"/>
      </authorization>
    </system.web>
  </location>

 

demo廢言快取雖然好用但是也要適量使用,不要一谷腦的全丟進去,不然就會發生下面這種情況…

Reference from:http://demo.tc/Post/663