应用程序请求路由并禁用缓存

Mar*_*tin 5 iis caching arr

我们有一个多租户的Web应用程序。我最近在生产环境中创建了几个空白网站,这些网站使用IIS 7.5和ARR 3.0(应用程序请求路由)充当反向代理。

这个想法是这样的:

(A)www.product.com->重写为-> www1.product.com

(B)report.product.com->重写为-> report1.product.com

  • 我启用了两个代理网站,并禁用了磁盘缓存。
  • 内存缓存持续时间默认为60。
  • 查询字符串支持为“忽略查询字符串”
  • 从格式(。*)到http://www1.product.com/ {R:1}的网站A代理上的入站重写规则
  • 网站B代理上的入站重写规则,从模式(。*)到http://reports1.product.com/ {R:1}

部署此服务时,我意识到www.product.com的行为符合预期,但是report.product.com突然返回了所有租户的缓存响应,因此我迅速将其关闭。

我检查了report.product.com上代理服务器上的IIS日志,所有查询字符串的X-ARR-CACHE-HIT = 0都告诉我ARR没有缓存,但是必须缓存。(没有一项的值为1)

我的问题是:

  1. 我知道我忘了忘了将内存缓存持续时间设置为0,但是将内存缓存持续时间设置为0会完全禁用代理服务器上的缓存吗?我根本不希望进行任何缓存。
  2. 设置“查询字符串支持”仅与磁盘缓存有关吗?还是会影响ARR的内存缓存?
  3. 为什么没有禁用内存缓存的选项?
  4. 为什么我只能在一个网站上体验?网站A和网站B的代理上的设置相同(网站B的sessionState = InProc,但是只有一个实例,没有服务器场)

提前致谢,