我们有一个多租户 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)
我的问题是:
- 我知道我搞砸了,忘记将内存缓存持续时间设置为 0,但是将内存缓存持续时间设置为 0 是否会完全禁用代理服务器上的缓存?我根本不希望进行任何缓存。
- 设置“查询字符串支持”是否仅与磁盘缓存相关?或者它是否也会影响 ARR 的内存缓存?
- 为什么没有禁用内存缓存的选项?
- 为什么我只在一个网站上体验?网站 A 和 B 的代理设置相同(网站 B 的 sessionState=InProc,但只有一个实例,没有服务器场)
提前致谢,