asp.net - 500 URL 重写模块错误 IIS 8

标签 asp.net iis-8

我有一些网站曾经位于使用 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”)时,无法应用出站重写规则。

最佳答案

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

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

完成此修复需要多个步骤,您可以在https://blogs.msdn.microsoft.com/friis/2016/08/25/iis-with-url-rewrite-as-a-reverse-proxy-part-2-dealing-with-500-52-status-codes/找到它们以及您需要的所有信息。 这是一篇由 3 部分组成的帖子,该系列的第二篇帖子是解决方案。

关于asp.net - 500 URL 重写模块错误 IIS 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47398792/

相关文章:

powershell - 使用 PowerShell 或其他脚本自动配置 IIS 网站/应用程序池

c# - 当用户向其中输入数据时,TextBox.Text 为 null

ASP.NET 4.5 页面和偶尔的 err_ssl_protocol_error

c# - ASP.NET Identity 2.0 注销不工作

c# - IClassFactory 由于以下错误 : 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) 而失败

asp.net - SITE 的 IIS 配置编辑器部分缺少 http压缩

ASP.NET 实时网站复制想法

asp.net-core - API 未在 IIS 上提供,但在 Kestrel 上提供

c# - 使用 jQuery 在 ASP.NET 中进行 AJAX 回调

ASP.NET Web API Azure Blob 存储非结构化