【问题标题】:Load balancer or IIS - which one is causing my urls to be case sensitive负载平衡器或 IIS - 哪一个导致我的网址区分大小写
【发布时间】:2023-08-27 20:27:02
【问题描述】:

我们有两台装有 Cisco Ace-30 负载平衡器的 Windows 2008 R2 服务器,以及一些具有联合身份验证 (thinktecture) 的 MVC 和 WebForms 应用程序(.net 4.5 和 4.5.1)。负载均衡器配置了 ssl,但从负载均衡器到 Web 服务器的流量是在 http 上。我要解决的问题是 url 的一部分区分大小写。拿这个网址:

在负载平衡器中,我禁用了默认的区分大小写,从我读到的内容来看,IIS 中没有这样的设置。我尝试创建一个静态网站(无身份验证),这按预期工作:

我也尝试过设置 url 重写规则,一旦应用该规则,就会出现超时。我的猜测是 IIS 将传入的 http 请求重写为新的 http 请求,负载均衡器无法识别其已修改的 https 请求。但我在这里猜测并超出了我的舒适区。

所以现在我有点困惑,不确定是什么导致 url 区分大小写。是吗:

  • 负载平衡器
  • IIS
  • 身份验证
  • 别的东西

如果有任何想法或调试提示,我将非常高兴

谢谢

拉西

【问题讨论】:

  • 捕获一些网络数据包并查看请求的去向真的太难了吗?这应该很容易告诉你问题出在哪里,然后你就可以专注于那个地方。 IIS 是高度可配置的,因此很难得出“IIS 中没有这样的设置”的结论。例如,写得不好的 URL 重写规则可能会区分大小写,并且会严重影响您。

标签: asp.net iis load-balancing cisco thinktecture-ident-server


【解决方案1】:

好的,我找到了问题(或至少是一个解决方案)。 IIS 正在发送重定向,并且该重定向是到一个 http 地址。

因此,当我们将负载均衡器配置为将 http 重定向到 https 时,一切都按预期工作。我的猜测是,当大小写不正确时,联邦导致 IIS 进行了额外的重定向,但这只是一个想法。

无论如何 - 负载均衡器上的 http 到 https 重定向解决了它。

拉西

【讨论】:

    最近更新 更多