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);
}
}
我知道 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);
}
}