代码之家  ›  专栏  ›  技术社区  ›  harriyott Erik Funkenbusch

在两个IIS应用程序之间共享httpruntime.cache

  •  4
  • harriyott Erik Funkenbusch  · 技术社区  · 15 年前

    我在IIS中有两个ASP.NET 2.0应用程序;一个公共预订系统和一个管理价格的管理系统。有一个访问数据库的共享DLL项目,由两个应用程序使用。

    为了提高性能,将价格缓存在DLL代码中,以便在每次请求时保存命中数据库的信息。但是,当管理员更改价格时,会在管理应用程序上刷新缓存(显然,在公共应用程序上不会刷新缓存)。

    所以,关于这个问题。是否可以配置IIS以便这两个应用程序共享httpruntime.cache?如果是,应该如何设置?

    2 回复  |  直到 9 年前
        1
  •  3
  •   Thies    15 年前

    这将超越拥有两个应用程序的极限——它们不应该共享同一个需要的DLL内存堆。您需要的是两个服务器之间的通信通道,并让管理网页通知对缓存的更改-这将导致刷新。

    可能是一些简单的事情,但可能是一个简单的页面,你张贴到这导致缓存检查更新?或者-让应用程序根据时间戳不时检查更新。

    (另一种选择是在缓存所在的位置创建服务,但我认为这超出了简单解决方案的范围)

        2
  •  0
  •   Community CDub    7 年前

    不;根据经验,这不起作用(.NET 4.6、IIS 8.5、2个应用程序是使用同一应用程序池的公用DLL)。文件很难获得(超越 "cache items are stored in memory" )-事实上,唯一的描述性部分是 what @Thies stated above -但是正如他所说,我相信这是因为缓存存储在DLL的分配内存中,因此 one process but two app domains )公用dll单独加载到两个应用程序域中,而dll的内存不共享。