Asp.net 缓存在 IIS 上不起作用。 IIS上有没有设置
Posted
技术标签:
【中文标题】Asp.net 缓存在 IIS 上不起作用。 IIS上有没有设置【英文标题】:Asp.net cache not working on IIS. Is there any setting on IIS 【发布时间】:2021-10-18 09:57:43 【问题描述】:我创建了一个如下所示的基本缓存示例。当我发布到本地 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);
【问题讨论】:
***.com/questions/5306126/… 感谢您的回复@LexLi。我现在尝试使用 HttpContext.Cache。但是,结果没有改变。它不工作 我认为this post 可能会帮助您解决问题。请检查帖子答案中提到的要点(<clientcache>
部分,启用Web浏览器缓存,使用FRT检查缓存是如何生成的)。
感谢您的回复@HuryShen。我尝试了帖子上的设置。但没用
由于所有建议/解决方案都无法解决您的问题,我认为您可以在this link 上创建支持以向微软工程师寻求帮助。
【参考方案1】:
请检查,转到 IIS 管理器->站点节点->输出缓存->编辑功能设置->取消选中启用缓存 和 对于静态文件,启用 IIS manager->site node->HTTP Response header->Set common headers->expire web content->immediately。
【讨论】:
感谢您的回复。我现在尝试了这个设置。但是,结果没有改变。它不工作【参考方案2】:我发现了问题。问题是防病毒。我们的防病毒软件正在删除静态变量和缓存值。因此,当我关闭防病毒软件时,缓存起作用了。
【讨论】:
以上是关于Asp.net 缓存在 IIS 上不起作用。 IIS上有没有设置的主要内容,如果未能解决你的问题,请参考以下文章
QueryStringParameters 在 ASP.Net objectDataSource 上不起作用
FileUpload.PostedFile.SaveAs() 在实时网站 asp.net 上不起作用