6

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

这个想法是这样的:

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

(B)reports.product.com -> 重写为 -> reports1.product.com

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

部署时,我意识到 www.product.com 的行为符合预期,但 reports.product.com 突然返回跨租户的缓存响应,我很快将其关闭。

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

我的问题是:

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

提前致谢,

4

0 回答 0