在 TEST IIS 机器上使用 C# IMemoryCache 进行永久缓存不起作用
Permanent Caching with C# IMemoryCache on TEST IIS Machine does not work
我有一个 Windows Server 2019,带有用于 .NET5 应用程序的 IIS 服务器,React 前端使用 IMemoryCache 来存储来自数据库的数据。它将超过 5GB 的数据加载到内存中 6 分钟(超过 500 000 000 行)。
当我 运行 来自 VS Professional 的应用程序时,缓存可以完美运行超过 6-12 小时(或更长时间),但是在我部署 & 运行 IIS 上的 Web 应用程序后,缓存可以正常工作不到 30 分钟
//Simplify class using
using Microsoft.Extensions.Caching.Memory;
//Simplify class var.
private readonly IMemoryCache _memoryCache;
//Simplify class constructor
public GroupLoader(IMemoryCache memoryCache)
{
_memoryCache = memoryCache;
}
// Store to CACHE
var cacheExpiryOptions = new MemoryCacheEntryOptions
{
AbsoluteExpiration = DateTime.Now.AddMonths(6),
Priority = CacheItemPriority.NeverRemove,
SlidingExpiration = TimeSpan.FromDays(180)
};
_memoryCache.Set(cacheKey, data, cacheExpiryOptions);
我不知道问题出在哪里,但是可以使用IMemoryCache 来永久缓存数据吗?缺少某些 IIS 设置?
一个可能的设置好像是这样的,不管怎样,每天都要清理(回收)内存,所以这是一个临时的解决办法。我希望它也对某人有所帮助,因为永久解决方案是使用 InMemory Redis。
IIS -> ApplicationPools -> (Select your pool) -> Advanced Settings
我有一个 Windows Server 2019,带有用于 .NET5 应用程序的 IIS 服务器,React 前端使用 IMemoryCache 来存储来自数据库的数据。它将超过 5GB 的数据加载到内存中 6 分钟(超过 500 000 000 行)。
当我 运行 来自 VS Professional 的应用程序时,缓存可以完美运行超过 6-12 小时(或更长时间),但是在我部署 & 运行 IIS 上的 Web 应用程序后,缓存可以正常工作不到 30 分钟
//Simplify class using
using Microsoft.Extensions.Caching.Memory;
//Simplify class var.
private readonly IMemoryCache _memoryCache;
//Simplify class constructor
public GroupLoader(IMemoryCache memoryCache)
{
_memoryCache = memoryCache;
}
// Store to CACHE
var cacheExpiryOptions = new MemoryCacheEntryOptions
{
AbsoluteExpiration = DateTime.Now.AddMonths(6),
Priority = CacheItemPriority.NeverRemove,
SlidingExpiration = TimeSpan.FromDays(180)
};
_memoryCache.Set(cacheKey, data, cacheExpiryOptions);
我不知道问题出在哪里,但是可以使用IMemoryCache 来永久缓存数据吗?缺少某些 IIS 设置?
一个可能的设置好像是这样的,不管怎样,每天都要清理(回收)内存,所以这是一个临时的解决办法。我希望它也对某人有所帮助,因为永久解决方案是使用 InMemory Redis。
IIS -> ApplicationPools -> (Select your pool) -> Advanced Settings