有關IIS7設置的問題。我如何爲每個綁定執行一次緩存?例如,我有一個網站和三個網站綁定。我需要爲三個綁定中的每一個創建三個不同的緩存。IIS 7三種綁定,我怎麼能爲他們做三個緩存?
2
A
回答
0
如果您正在手動讀取和寫入緩存,usr的答案是正確的。但是,使用OutputCacheAttribute不能直接控制緩存鍵。
請注意,OutputCacheAttribute
在其實現中仍依賴緩存鍵。在ASP.NET中,緩存的每個項目都被分配了一個通過它查找的關鍵字。
當您調用具有OutputCacheAttribute
,的控制器操作時,根據您的請求生成緩存密鑰;例如,如果您有一些VaryByParam
指定,緩存鍵可能因每個用戶而異。然後,您的操作返回的響應將存儲在該鍵下的緩存中。
當下一個請求進入時,會生成緩存密鑰,然後我們檢查緩存以查看是否已有緩存在該密鑰下的東西。如果是這樣,我們只是返回;否則,我們繼續行動。
我們可以通過在緩存鍵中包含主機名來爲每個綁定設置不同的緩存。如果您使用OutputCacheAttribute,你可以重寫它允許通過主機改變緩存:
public override string GetVaryByCustomString(HttpContext context, string customVary)
{
if(customVary == "Host")
{
return context.Request.Url.Host;
}
// other behaviors here if necessary
return "";
}
這將允許緩存鍵動態地修改,以包括通過該網站被訪問的主機名。這意味着如果你有三個不同的綁定,你將有三個不同的緩存鍵(假設沒有其他變化的參數)。
下面是如何修改控制器動作:
[MyOutputCache(VaryByParam = "None", VaryByCustom = "Host", Duration = 7200)]
public ActionResult Index()
{
// ...
return View();
}
通知的列入VaryByCustom = "Host"
,然後由你重寫OutputCacheAttribute的GetVaryByCustomString()
方法看到並因此包括在緩存鍵時使用。
1
使用Request.Host
作爲緩存鍵的一部分。
相關問題
- 1. 他們怎麼做到的?
- 2. 我怎樣才能創建三個tabels
- 3. IIS和CLR,他們怎麼說話?
- 4. 從Nagios到check_mk配置三個步驟,我怎麼能做得更好?
- 5. 我怎麼能他們是圖像
- 6. 如果我們無法綁定MouseBinding的命令,我們應該怎麼做?
- 7. 爲什麼我不能使用這三種方法startLeScan,stopLeScan
- 8. 緩存第三方API調用的最佳做法是什麼?
- 9. 用SiteMap創建三級ASP.NET菜單,我該怎麼做?
- 10. md5解碼。他們怎麼做?
- 11. iPhone App:他們是怎麼做到的?
- 12. 外鍵 - 他們爲我做了什麼?
- 13. 我有一個保存菜單項屬性的類。我需要填充三個JLists。我該怎麼做?
- 14. 我怎麼能在Drupal 7
- 15. 我們如何能有三列TableViewCell
- 16. knockoutJS中的三向綁定?可能嗎?
- 17. 分開三個NSStrings,怎麼樣?
- 18. 我怎麼能做這個KD樹?
- 19. 爲什麼在這三種情況下
- 20. 返回三個可變的功能,並檢查他們
- 21. 三個庫中,require.js無法加載一個;我怎麼知道爲什麼?
- 22. 需要mutator方法我怎麼做他們
- 23. Scala:爲什麼我們不能做super.val?
- 24. 三種方式綁定返回$ bindTo不是一個函數
- 25. 我怎麼能找到三星Galaxy S2(S2,S3)型號系列
- 26. 我怎麼能排除第三查詢值(訪問)
- 27. CSS-他們怎麼做沒有絕對定位和Z-索引?
- 28. 我們應該怎麼做才能讓C#Silverlight Tcp Packet成爲一個整體?
- 29. 用戶輸入,我們該怎麼做?
- 30. 我怎麼回到第一個viewController從第三個viewController
Thanks Maxim!有用!所以我找到了一個[解釋](http://visitmix.com/writings/using-varybycustom-with-outputcache-in-asp-net-mvc-to-support-caching-for-logged-in-users)喜歡你的解釋 – DmitryBLR
@DmitryBLR我很高興聽到它的幫助!祝你好運。 –