Django 1.2.3、PyISAPIe v1.1.0-rc4、およびIIS 7.5を使用しているときに、大きなPOSTデータ(> 16384バイト)で問題が発生しています。
たとえば、約を提出する場合。POSTを使用した60kBのフォームデータでは、次のようになります。
- POSTデータの最初の16kBブロックは正しい
- 次の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インターフェースについては十分に知りませんが、バグはReadWrite.cppのReadClient関数のPyISAPIeのどこかにあると思います。
私の現在の回避策はcontent-type="multipart/form-data"
、16kBを超えるデータを生成する可能性のあるフォームに追加することです。
誰かがこれにも遭遇したことがありますか、またはバグが実際にPyISAPIeにあるかどうかを判断する方法を知っている人はいますか?
ありがとうございました!