【发布时间】:2020-03-11 17:06:59
【问题描述】:
我正在尝试在装有 IIS 10 和 FastCGI 的 Windows 10 机器上托管 Django Web 应用程序。 虽然到目前为止一切都运行良好,但在上传较大的文件(~120MB)时,我遇到了某些 POST 请求的问题,即 HTTP 500 错误。我正处于不知道如何进一步调试的地步。
我通过增加请求限制解决了错误“413.1 - 请求实体太大”。但是,现在我收到一个 HTTP 错误,说明如下:
C:\Apps\Python3\python.exe - The FastCGI process exceeded configured request timeout
超时设置为 90 秒,我可以看出在文件上传完成后,我的浏览器正在等待服务器的响应。
在 Django-view 中响应请求的操作并不多。如果我在同一台机器上运行 django 开发服务器,响应将在文件上传后几秒钟内发送。 IIS 发送 HTTP 500 响应的持续时间比 1 分钟多。
我在 post() 方法中的 Django 视图中添加了一些代码,以便在调用该方法时将内容写入文件:
def post(self, request, *args, **kwargs):
with open(os.path.join(settings.REPORT_DIR, "view_output.txt"), "w") as f:
f.write("tbd.")
(...)
然而,这个动作永远不会被执行,尽管它在其他 Django-Views 中有效。因此,我假设 IIS 处理请求存在问题。
我启用了 FREB 日志记录,但对解释有点迷茫。 “错误和警告”仅说明 LOG_FILE_MAX_SIZE_TRUNCATE 事件,可能是由于请求过大。
由于我是 IIS 新手,如何进一步调试?
非常感谢!
【问题讨论】: