我有一个用Python编写的API,我正在通过ISAPI扩展PyISAPIe访问IIS7.5。我认为将这个API与我们的主站点分开是明智的,所以它在一个与端口8008访问的不同的站点中。
为了能够使用像http://domain/api这样的URL访问API,我在IIS中使用ARR和URL重写创建了一个反向代理规则,以便将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响应超过一定大小(在我的测试中大约为125 in )时才会发生--对于较小的大小,一切似乎都正常工作。
我尝试过将代理设置中的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=""发布于 2014-09-01 22:17:30
您需要在maxJsonLength中增加web.config设置。有关允许值和故障排除的详细信息,请参见这个问题 on。
发布于 2014-09-02 23:18:08
您能附上来自ARR ( 502)和站点( 200)的请求跟踪吗?我在过去也遇到过类似的问题,我认为我通过在正在重写的ARR和站点的配置中增加maxRequestLength来解决这个问题。
https://serverfault.com/questions/625521
复制相似问题