【问题标题】:Asp.net cache not working on IIS. Is there any setting on IISAsp.net 缓存在 IIS 上不起作用。 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);
            }
        }
    }
}

【问题讨论】:

  • 感谢您的回复@LexLi。我现在尝试使用 HttpContext.Cache。但是,结果没有改变。它不工作
  • 我认为this post 可能会帮助您解决问题。请检查帖子答案中提到的要点(<clientcache>部分,启用Web浏览器缓存,使用FRT检查缓存是如何生成的)。
  • 感谢您的回复@HuryShen。我尝试了帖子上的设置。但没用
  • 由于所有建议/解决方案都无法解决您的问题,我认为您可以在this link 上创建支持以向微软工程师寻求帮助。

标签: c# asp.net asp.net-mvc iis caching


【解决方案1】:

请检查,转到 IIS 管理器->站点节点->输出缓存->编辑功能设置->取消选中启用缓存 和 对于静态文件,启用 IIS manager->site node->HTTP Response header->Set common headers->expire web content->immediately。

【讨论】:

  • 感谢您的回复。我现在尝试了这个设置。但是,结果没有改变。它不工作
【解决方案2】:

我发现了问题。问题是防病毒。我们的防病毒软件正在删除静态变量和缓存值。因此,当我关闭防病毒软件时,缓存起作用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多