我使用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分鐘?