【问题标题】:Django on IIS: Debugging IIS Error due to FastCGI request timeout on large file uploadIIS 上的 Django:由于大文件上传时的 FastCGI 请求超时而导致调试 IIS 错误
【发布时间】: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 新手,如何进一步调试?

非常感谢!

【问题讨论】:

    标签: django iis


    【解决方案1】:

    要解决此问题,您可以按照以下步骤操作:

    IIS 默认文件上传大小为 30mb(30000000 字节),使用以下方法增加此值:

    • 打开 IIS 管理器,选择您的站点。

    • 中间窗格中的双击请求过滤功能。

    • 在屏幕右侧的“操作”窗格中,单击“编辑功能设置...”链接。

    • 在“请求限制”部分,输入相应的最大允许内容长度(字节),例如 2147483648,即 2GB,然后单击“确定”按钮。

    • 点击确定并应用设置然后返回。

      增加站点连接超时时间:

    • 打开 Internet 信息服务 (IIS) 管理器。

    • 展开本地计算机节点,展开网站,右键单击相应的网站,指向管理网站,单击高级设置。

    • 在“高级设置”窗口中,展开“连接限制”,更改“连接超时”字段中的值,然后单击“确定”。

    应用程序池设置:

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

    CGI 超时:

    • 在 IIS 中,双击 CGI 图标并增加“超时”。

    【讨论】:

    • 感谢您的回复。我修改了上述设置,并另外调整了 FastCGI 的超时设置。该操作现在执行,但处理请求需要超过四分钟。如果我运行 django 开发服务器并触发相同的请求,它会在几秒钟内得到处理。处理时间差异如此之大的原因可能是什么?
    • @cjac 我可以看到您的原始问题问题已解决。我请求您将解决方案标记为答案并为新问题创建一个新线程。
    • @JalpaPanchal,504 超时也有类似的问题,并且做了所有提到的设置但不起作用。
    • @keramat 我请求您创建一个新帖子并添加有关该问题的更多详细信息。
    • @JalpaPanchal,我在这里问过:stackoverflow.com/questions/63573631/…。感谢您的以下贡献。
    猜你喜欢
    • 2014-06-02
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多