gpt4 book ai didi

IIS 上的 Django : Debugging IIS Error due to FastCGI request timeout on large file upload

转载 作者:行者123 更新时间:2023-12-04 12:24:40 37 4
gpt4 key购买 nike

我正在尝试在带有 FastCGI 的 IIS 10 的 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 View 添加了一些代码,以便在调用该方法时将一些内容写入文件:
def post(self, request, *args, **kwargs):
with open(os.path.join(settings.REPORT_DIR, "view_output.txt"), "w") as f:
f.write("tbd.")
(...)

然而,这个 Action 永远不会被执行,尽管它在其他 Django-Views 中有效。因此,我假设 IIS 处理请求有问题。

我启用了 FREB 日志记录,但对解释有点迷茫。 “错误和警告”只是说明了 LOG_FILE_MAX_SIZE_TRUNCATE 事件,可能是由于请求很大。

由于我是 IIS 的新手,我该如何进一步调试?

非常感谢!

最佳答案

要解决此问题,您可以按照以下步骤操作:
IIS 默认文件上传大小为 30mb(30000000 字节),请使用以下方法增加此值:

  • 打开 IIS 管理器,选择您的站点。
  • 双击中间 Pane 中的请求过滤功能。

  • enter image description here
  • 从屏幕右侧的“操作” Pane 中,单击“编辑功能设置...”链接。

  • enter image description here
  • 在请求限制部分,输入适当的最大允许内容长度(字节),例如 2147483648,即 2GB,然后单击确定按钮。

  • enter image description here
  • 单击确定并应用设置然后返回。
    增加站点连接超时:
  • 打开 Internet 信息服务 (IIS) 管理器。
  • 展开本地计算机节点,展开网站,右键单击相应的网站,指向管理网站,单击高级设置。
  • 在“高级设置”窗口中,展开“连接限制”,更改“连接超时”字段中的值,然后单击“确定”。

  • enter image description here
    应用程序池设置:
  • 打开 IIS。
  • 在左侧,选择“应用程序池”
  • 在右侧,右键单击此应用程序池并选择高级设置。
  • 在高级设置中,增加“空闲超时(分钟)”。

  • enter image description here
    CGI超时:
  • 在 IIS 中,双击 CGI 图标并增加“超时”。

  • enter image description here

    关于IIS 上的 Django : Debugging IIS Error due to FastCGI request timeout on large file upload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60641193/

    37 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com