Azure 中带 MVC 和 ASP.NET 核心的输出缓存 IIS

Outputcache IIS with MVC and ASP.NET Core in Azure

我知道 OutputCache 还没有为 ASP.NET Core 做好准备,但我已经阅读了有关 OutputCache 的信息,您可以在 web.config 中像这样配置它:

<configuration> 
     <location path="showStockPrice.asp">     
       <system.webserver>        
         <caching>         
           <profiles>
             <add varybyquerystring="*"location="Any"
               duration="00:00:01" policy="CacheForTimePeriod"            
               extension=".asp">
           </profiles>
         </caching>
       </system.webserver>
     </location>
</configuration>

我可以确认我的 web.config 将 OutputCache Web.Config 用于 MVC 路由吗?

例如:

http://www.example.com/View/Index/123562

其中 varyByParam 参数为 123562。

谢谢。

您可以使用 IMemoryCache class 来存储结果。可以找到 Microsoft 的示例用法 here.

这是一个简单的例子:

public class HomeController : Controller
{
    private readonly IMemoryCache _cache;

    public HomeController(IMemoryCache cache)
    {
        _cache = cache;
    }

    public IActionResult About(string id)
    {
        AboutViewModel viewModel;

        if (!_cache.TryGetValue(Request.Path, out result))
        {
            viewModel= new AboutViewModel();
            _cache.Set(Request.Path, viewModel, new MemoryCacheEntryOptions()
            {
                AbsoluteExpiration = DateTime.Now.AddHours(1)
            });
        }
        return View(viewModel);
    }
}