【发布时间】:2012-03-28 13:39:09
【问题描述】:
在使用 Django 1.2.3、PyISAPIe v1.1.0-rc4 和 IIS 7.5 时,我遇到了大型 POST 数据(>16384 字节)的问题。
例如,当提交大约。使用 POST 的 60kB 表单数据,会发生以下情况:
- POST 数据的前 16kB 块是正确的
- 下一个 16kB 块是第一个块的重复
- 接下来的 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 的块读取,而多部分处理程序似乎以不到 2GB 的块读取。
我对 C 和 C 语言的 Python 接口知之甚少,无法进一步深入研究,但我猜这个 bug 可能在 PyISAPIe 中 ReadWrite.cpp 中 ReadClient 函数的某个地方。
我目前的解决方法是将content-type="multipart/form-data" 添加到可能产生超过 16kB 数据的表单中。
是否有人也遇到过这种情况,或者有人知道如何确定该错误是否确实存在于 PyISAPIe 中?
谢谢!
【问题讨论】:
标签: python c django python-c-api pyisapie