较大文件的 IIS ARR/反向代理 502 错误

较大文件的 IIS ARR/反向代理 502 错误

我有一个用 Python 编写的 API,我通过 ISAPI 扩展 PyISAPIe 使用 IIS 7.5 访问它。我认为将此 API 与我们的主站点分开是明智的,因此它位于使用端口 8008 访问的不同站点中。

为了能够使用类似的 URL 访问 API http://domain/api,我在 IIS 中使用 ARR 和 URL Rewrite 创建了反向代理规则,以便http://domain/api重定向到http://domain:8008

反向代理似乎工作正常,并且在大多数情况下我都能从 API 收到正确的响应(API 返回 JSON)。但是,在某些情况下,我会收到502以下错误消息:

502 - Web server received an invalid response while acting as a gateway or proxy server.

这似乎仅当 JSON 响应超过一定大小(在我的测试中约为 125KB)时才会发生 - 对于较小的尺寸,一切似乎都正常工作。

我尝试增加Response buffer threshold代理设置,但没有效果。


附加信息

在日志中我可以看到对端口 8008 上的站点的请求成功并返回 200 状态代码。

激活失败请求跟踪后,唯一的错误/警告如下(这是在收到来自其他站点的响应后 - 参见上一点):

MODULE_SET_RESPONSE_ERROR_STATUS 
Warning ModuleName="ApplicationRequestRouting",
Notification="EXECUTE_REQUEST_HANDLER", HttpStatus="502", 
HttpReason="Bad Gateway", HttpSubStatus="3",
ErrorCode="2147954552"ConfigExceptionInfo=""

答案1

您需要maxJsonLength在 web.config 中增加设置。请参阅这个问题有关允许值和故障排除的详细信息,请访问 SO。

答案2

您能附上来自 ARR(502)和站点(200)的请求跟踪吗?我以前也遇到过类似的问题,我想我通过增加最大请求长度在正在重写的 ARR 和站点的配置中。

相关内容