【问题标题】:Automatically refreshing cache on a IIS server自动刷新 IIS 服务器上的缓存
【发布时间】:2012-09-03 13:45:21
【问题描述】:

很抱歉,我工作的机构继承了一个在 Windows 服务器上使用 ASP.net 构建的网站。

我们遇到了用户登录系统问题。基本故事是当用户请求一个帐户时,管理员必须批准它。如果管理员拒绝用户应用程序,则用户仍然可以使用忘记密码选项登录。

我最初的反应是代码中的逻辑错误,但我们已经让一些 ASP 人员快速查看并无法重现该问题。因此,他们建议这可能是某种缓存问题。如果是这样的话,无论如何设置服务器以每小时左右重置它的缓存?或任何其他关于此的建议也受到欢迎。很抱歉完全没有代码示例,但我现在只能提供一个场景。

干杯。

【问题讨论】:

    标签: c# asp.net windows-server


    【解决方案1】:

    如果你不能重现它,那么没有问题;尽管我承认可能存在缓存问题。但在不了解您的应用程序的情况下,我只能建议您对源代码进行 grep 以获取对System.Web.Caching.Cache 类的引用(如果不是通过HttpContext.Current,通常直接通过Page 类访问)。

    删除负责缓存的想法,我认为这只是忘记密码功能编码错误的一个案例。我猜是忘记密码功能重置了某种“帐户禁用”标志,这就是允许用户进入的原因。

    【讨论】:

    • 别忘了 System.Runtime.Caching! - 它是最近才出现的,但如果你建议进行文本搜索,他可能应该同时寻找。
    【解决方案2】:

    ASP.Net caching class 有一个用于缓存项目的迭代器,以及一个删除项目的方法。在 IIS 中托管长时间运行的进程很困难——因为“空闲”工作进程会被杀死——所以你不能只运行一个计时器。但是您可以使用IIS auto-start 功能,结合持久存储,每小时运行一次“核对缓存”方法。

    话虽如此,我看不出这是解决问题的明智方法——我希望这里的计划只是为了帮助隔离真正的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-29
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      相关资源
      最近更新 更多