我们已经部署了一个简单的服务栈应用程序在 IIS 7 中提供 Podcast RSS 源。仔细检查 IIS 日志,我们发现一小部分请求会得到 HTTP500.19错误代码。
在每天约 55 万个请求中,约有 600 个请求因 500.19 而失败。这意味着我们成功地为 99.9% 的请求提供了 RSS。我仍然很好奇为什么我们失败了0.1%其中。
500.19 一般是由于配置无效导致的。怎么可能只有 0.1% 的请求配置失败呢?
我无法手动重现该错误,因此我没有 HResult 代码。这在 IIS 日志中也不存在。但是,sc-win32-状态在 IIS 日志中64
一些细节:
- 应用程序的内部日志从未报告任何错误,表明请求从未到达我们的代码。
- 该错误通常发生在最大的 RSS(gzip 压缩后为 740KB)上,但也发生在较小的 RSS(gzip 压缩后为 140KB)上。
- 失败的请求通常来自移动客户端(IOS、Android),但这并没有什么意义,因为播客通常在移动设备上使用。
- 应用程序部署在 6 个节点上,使用 BigIP 进行负载平衡。配置文件不跨节点共享。所有节点的错误率均为 0.1%。
- 我们在 IIS 中激活了输出缓存(但没有内核缓存)。