500 URL 重写模块错误 IIS 8

问题描述 投票:0回答:2

我有一些网站曾经位于使用iis7作为主机的服务器上。我已将这些网站移至新服务器 IIS8,并且数据库已从 SQL 2005 升级到 SQL 2014。

此更改的另一部分是它现在通过重定向到内部服务器的 DMZ 反向代理运行。

这在 Chrome 或 Edge 中运行良好。但是 Firefox 和 IE 我收到 500 URL 重写模块错误。除此之外,错误中没有更多信息。

我在反向代理上有其他网站,可以正常工作。但所有可用的都是 .net 4.0 或更高版本。我遇到问题的网站都是 3.5 框架。

我尝试在 dmz 上设置应用程序池框架以匹配内部服务器。

目前入站规则有2条,一条是http转https,一条是代理规则。有 1 个出站规则,它也是反向代理的一部分。反向代理当前获取 https 流量并在内部使用 http,然后出站将其作为 https 发回。这与该服务器上当前运行没有任何问题的所有网站上的情况相同。

更多信息。我关闭了错误跟踪,收到的更完整的错误是 当 HTTP 响应的内容经过编码(“gzip”)时,无法应用出站重写规则。

asp.net iis-8
2个回答
2
投票

这是因为来自后端服务器的响应正在使用 HTTP 压缩,并且 URL 重写无法修改已压缩的响应。这会导致出站规则处理错误,从而导致 500.52 状态代码。

有两种方法可以解决此问题:要么在传送 HTTP 响应的后端服务器上关闭压缩(这可能会也可能不会,具体取决于您的配置),或者我们尝试向后端服务器指示客户端不接受压缩响应,方法是在请求进入 IIS 反向代理时删除标头,并在响应离开 IIS 服务器时将其放回

完成此修复需要多个步骤,您可以在 https://blogs.msdn.microsoft.com/friis/2016/08/25/iis-with-url- 找到它们以及所需的所有信息-重写为反向代理第 2 部分-处理 500-52-状态代码/ 这是一篇由 3 部分组成的帖子,该系列的第二篇帖子就是解决方案。


0
投票

确保您的实例上还安装了 rewrite 模块,否则您将面临 500 错误

© www.soinside.com 2019 - 2024. All rights reserved.