我正在尝试在带有 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
Run Code Online (Sandbox Code Playgroud)
超时设置为 90 秒,我可以看出,文件上传完成后,我的浏览器正在等待服务器的响应。
在 Django 视图中不需要执行太多操作来响应请求。如果我在同一台计算机上运行 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.")
(...)
Run Code Online (Sandbox Code Playgroud)
However, this action is never performed, although it works in other Django-Views. I therefore assume a problem with IIS processing the request.
I enabled FREB logging, but am a little lost with interpretation. The "Errors & Warnings" just state the LOG_FILE_MAX_SIZE_TRUNCATE event, probably due to the large request.
Since I'm new to IIS, how can I debug any further?
Thank you very much!
要解决该问题,您可以按照以下步骤操作:
IIS 默认文件上传大小为 30mb(30000000 字节),通过使用以下命令增加此值:
打开 IIS 管理器,选择您的站点。
双击中间窗格中的请求过滤功能。
单击“确定”并应用设置,然后返回。
增加站点连接超时:
打开 Internet 信息服务 (IIS) 管理器。
展开本地计算机节点,展开网站,右键单击相应的网站,指向管理网站,然后单击高级设置。
在“高级设置”窗口中,展开“连接限制”,更改“连接超时”字段中的值,然后单击“确定”。
应用程序池设置:
CGI 超时:
| 归档时间: |
|
| 查看次数: |
1576 次 |
| 最近记录: |