Asp.net 缓存在 IIS 上不工作。 IIS有没有设置
Asp.net cache not working on IIS. Is there any setting on IIS
我创建了一个基本的缓存示例,如下所示。当我发布到我的本地 IIS 时,我的代码是 运行 完美。但是,当我发布时我的真实服务器不工作。没有任何错误。但是缓存总是空的。 这可能是什么原因? IIS 或其他 windows 配置中是否有任何设置?
using System;
using System.Runtime.Caching;
using System.Web.Http;
namespace ToplumMerkezleriCommonApi.Controllers
{
public class ValuesController : ApiController
{
protected ObjectCache Cache => MemoryCache.Default;
protected CacheItemPolicy policy = null;
public object Get(string id)
{
if (Cache.Get("testcache") == null)
{
GetAllCacheItems();
}
return Cache[id] as Object;
}
private void GetAllCacheItems()
{
using (CommunityCenterEntities context = new CommunityCenterEntities())
{
policy = new CacheItemPolicy();
policy.AbsoluteExpiration = DateTimeOffset.Now.AddHours(24);
Cache.Set("testcache", DateTime.Now.ToString(), policy);
}
}
}
}
请检查,转到 IIS 管理器->站点节点->输出缓存->编辑功能设置->取消选中启用缓存
和
对于静态文件,启用 IIS 管理器->站点节点->HTTP 响应 header->设置通用 headers->使 Web 内容过期->立即。
我发现了问题。问题是防病毒。我们的防病毒软件正在删除静态变量和缓存值。所以,当我关闭防病毒软件时,缓存起作用了。
我创建了一个基本的缓存示例,如下所示。当我发布到我的本地 IIS 时,我的代码是 运行 完美。但是,当我发布时我的真实服务器不工作。没有任何错误。但是缓存总是空的。 这可能是什么原因? IIS 或其他 windows 配置中是否有任何设置?
using System;
using System.Runtime.Caching;
using System.Web.Http;
namespace ToplumMerkezleriCommonApi.Controllers
{
public class ValuesController : ApiController
{
protected ObjectCache Cache => MemoryCache.Default;
protected CacheItemPolicy policy = null;
public object Get(string id)
{
if (Cache.Get("testcache") == null)
{
GetAllCacheItems();
}
return Cache[id] as Object;
}
private void GetAllCacheItems()
{
using (CommunityCenterEntities context = new CommunityCenterEntities())
{
policy = new CacheItemPolicy();
policy.AbsoluteExpiration = DateTimeOffset.Now.AddHours(24);
Cache.Set("testcache", DateTime.Now.ToString(), policy);
}
}
}
}
请检查,转到 IIS 管理器->站点节点->输出缓存->编辑功能设置->取消选中启用缓存 和 对于静态文件,启用 IIS 管理器->站点节点->HTTP 响应 header->设置通用 headers->使 Web 内容过期->立即。
我发现了问题。问题是防病毒。我们的防病毒软件正在删除静态变量和缓存值。所以,当我关闭防病毒软件时,缓存起作用了。