我正在尝试确定在 Azure 应用服务实例中运行的 AspNetCore 2.1.5 应用的诊断日志中看到的 500 服务器错误的原因:
HTTP 错误 500.53 - URL 重写模块错误。 对 HTTP 响应的内容进行编码 ("gzip"( 时,无法应用出站重写规则。
症状包括:
- 不完整的 HTML 响应(返回 200 状态代码,但偶尔只显示部分内容 - 刷新页面 1-3 次通常可以解决此问题(
- 经常缓慢的响应时间~10-40秒 - 就好像应用程序没有预热一样。
可能相关信息:
- 应用程序见解不会在任何地方显示任何这些故障或响应时间缓慢。
- 我没有在我的配置中明确使用任何重写规则。
- 呼叫/不呼叫应用程序。启动中的 UseResponseCompression(( 没有区别
- 呼叫/不呼叫应用程序。启动中的 UseHttpsRedirection(( 没有区别
- 在 Azure 门户中启用/禁用"仅限 HTTPS"不会产生任何影响
- 我在本地没有看到任何问题 在 B1、
- B2、S1、S2 应用服务计划之间缩放不会产生任何影响
- 仅关闭 https 并使用非 SSL 端点不会有什么不同
这是我的WebHostBuilder调用:
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostingContext, config) =>
{
config.SetBasePath(Directory.GetCurrentDirectory());
})
.UseSerilog()
.UseStartup<Startup>()
.UseApplicationInsights();
我在谷歌上搜索时发现的唯一类似结果是 500.52 错误,但它们总是与我不(明确(使用的不正确的 url 重写规则有关。
为了其他人的利益,我最近遇到了同样的问题,在深入研究 Azure 门户 2 小时后,启用APPINSIGHTS_JAVASCRIPT_ENABLED
设置与<urlCompression ...>
设置相结合的应用程序见解似乎存在已知问题,您可以从下面的链接中找到更多详细信息
https://github.com/Microsoft/ApplicationInsights-Home/issues/282
两种可能的解决方案
1. 关闭APPINSIGHTS_JAVASCRIPT_ENABLED
将APPINSIGHTS_JAVASCRIPT_ENABLED
设置为从 web.config 应用设置或 Azure 应用边栏选项卡应用程序设置false
阿拉伯数字。关闭dynamicCompressionBeforeCache
在 web.config 和查找<urlCompression ..>
节点中搜索,禁用静态和动态压缩<urlCompression doStaticCompression="false" doDynamicCompression="false" />
.
如果您配置了类似 CDN 的 cloudflare,则应考虑完全删除urlCompression
。