gpt4 book ai didi

python - 使用 Django/PyISAPIe/IIS 时,大型 POST 数据已损坏

转载 作者:行者123 更新时间:2023-11-28 23:02:27 26 4
gpt4 key购买 nike

在使用 Django 1.2.3、PyISAPIe v1.1.0-rc4 和 IIS 7.5 时,我遇到了大 POST 数据(>16384 字节)的问题。

例如,当提交大约。使用 POST 的 60kB 表单数据,会发生以下情况:

  • POST 数据的第一个 16kB block 是正确的
  • 下一个 16kB block 是第一个 block 的重复
  • 接下来的 16kB 是第一个 block 的另一个重复
  • 其余的(<16kB)再次正确

有趣的是,当使用 content-type="multipart/form-data" 时,它工作正常。

使用这些信息,我追踪到错误的可能位置到 django\core\handlers\wsgi.py 中的 WSGIRequest._get_raw_post_data,它处理 content-type="multipart/form-data" 与默认(无内容类型)情况分开。

两种情况都从 self.environ['wsgi.input'] 读取,它被设置为 PyISAPIe 对象。不同之处在于默认情况似乎以 16kB 的 block 读取,而多部分处理程序似乎以不到 2GB 的 block 读取。

我对 C 和 C 的 Python 接口(interface)了解不多,无法进一步深入研究,但我猜测该错误出在 PyISAPIe 中 ReadWrite.cpp 的 ReadClient 函数中的某处。

我目前的解决方法是将 content-type="multipart/form-data" 添加到可能产生超过 16kB 数据的表单中。

有没有人也遇到过这个问题,或者有没有人知道如何确定该错误是否确实存在于 PyISAPIe 中?

谢谢!

最佳答案

这里是 PyISAPIe 作者。

这已在 revision 184 中修复在存储库中但不在可下载版本中,如 mailing list 中所讨论.

它解决了一个 previously documented这个错误显然没有受到太多关注,因为许多用户正在检查源代码而不是下载包。或者,这是我最好的猜测;不管怎样,我计划提供固定代码的可下载版本。

感谢您提醒我注意此事,以便提醒我保持该项目的发布处于正常运行状态。

关于python - 使用 Django/PyISAPIe/IIS 时,大型 POST 数据已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9891467/

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