2017-07-05 143 views
0

我使用ASP.Net 5,針對.Net 4.7和Microsoft.AspNet.OutputCache.OutputCacheModuleAsync作爲輸出緩存。ASP.Net MVC OutputCache無法緩存結果

這裏是我的web.config的緩存相關的部分:

<system.web> 
<compilation debug="true" targetFramework="4.7" /> 
<httpRuntime targetFramework="4.7" /> 
<httpModules></httpModules> 
<caching> 
    <outputCache defaultProvider="CustomOutputCacheProvider"> 
    <providers> 
     <add name="CustomOutputCacheProvider" type="CacheTest.CustomOutputCacheProvider, CacheTest" /> 
    </providers> 
    </outputCache> 
</caching> 
</system.web> 
<system.webServer> 
<modules> 
    <remove name="OutputCache" /> 
    <add name="OutputCache" type="Microsoft.AspNet.OutputCache.OutputCacheModuleAsync, Microsoft.AspNet.OutputCache.OutputCacheModuleAsync, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode" /> 
</modules> 
</system.webServer> 

目前我使用從OutputCacheProvider實現:https://blogs.msdn.microsoft.com/webdev/2016/12/05/introducing-the-asp-net-async-outputcache-module/

我的控制器看起來是這樣的:

public class HomeController : Controller 
{ 
    //[OutputCache(Duration = 10000, VaryByParam = "none", Location = OutputCacheLocation.Server)] 
    [OutputCache(Duration = 1000, VaryByParam = "none", Location = OutputCacheLocation.Server)] 
    public ActionResult Index() => View(); 
} 

問題:

是否添加,也不設置方法(同步和異步)的緩存提供的,當我使用「低不獲取調用「持續時間的值(持續時間= 1000進行測試)。
這意味着結果沒有得到緩存。

當我將持續時間更改爲更高值時,Add和Set正在調用,並且結果得到正確緩存(使用持續時間= 10000進行測試)。

如何將結果緩存一段時間,例如5分鐘?

回答

0

我用你的代碼片斷來創建一個ASP.NET MVC應用程序,但無法重現。你正在創建一個ASP.NET核心MVC應用程序?你可以分享一個repro應用程序嗎?謝謝。 局域網