2012-07-22 102 views
0

我們有一個現有的MVC2項目,我們剛剛升級到MVC4,之後是第一個these steps,轉到MVC3,然後these steps轉到MVC4。從MVC2升級到MVC4後,ASP.NET輸出緩存不起作用

輸出緩存在我們的MVC2項目中已經成功運行了很長時間,但在MVC4版本之後它不起作用。

我添加了一個簡單的控制器來測試緩存:

public class TestController : Controller 
{ 
    [OutputCache(Duration = 600, VaryByParam = "*")] 
    public ActionResult CacheTest() 
    { 
     return Content(DateTime.Now.ToLongTimeString()); 
    } 
} 

每次我刷新此頁面,時間輸出到瀏覽器的變化。

在這個相同的解決方案中創建一個新的MVC3項目,然後升級到MVC4,然後複製這個相同的代碼。

因此,我們現有的代碼或配置中的任何地方都會出現中斷輸出緩存的情況。

我也嘗試從web.config文件中剝離出一大堆東西,以爲有些東西會導致問題 - 沒有運氣。

有關如何解決或調試此問題的任何建議?

UPDATE:

渲染上述CacheTest行動的任何視圖將顯示緩存的結果 - 即日期不會在每次刷新更改:

<% Html.RenderAction("CacheTest", "Test"); %> 

爲什麼這項工作,但行動來自瀏覽器的url永遠不會被緩存?

+0

你使用的是同一個網絡服務器嗎?你是否從卡西尼改爲IIS Express? – 2012-07-22 17:54:21

+0

這裏沒有改變。我還在win2008服務器上驗證了IIS 7.5上的相同不良結果。 – jaminto 2012-07-23 01:40:55

回答

0

原來這是第三方庫的問題 - 51Degrees。這是該庫最近版本引入的一個問題。在從MVC2轉換到MVC4的過程中,我安裝了比我以前版本晚幾個版本的nuget軟件包。

虛假警報 - 與ASP.NET MVC升級無關或與ASP.NET相關的任何內容。

相關問題