2

IIS7 で実行する C++ CGI アプリケーションを作成しています。私の問題は、POST リクエストに送信されるデータの量が特定のサイズを超えると、EOF を設定するのではなく、標準入力ブロックから永遠に読み取ることです。これは C++ 固有の問題ではないと思います。「hello world」タイプのアプリケーションを実行するようにサーバーを既に正常に構成しており、これを拡張して何か役に立つことを行っているため、基本的な構成ミスではないと思います。

この問題を説明するための最も単純なアプリケーションは次のとおりです。アプリケーションは、コメント行の呼び出しで停止します (これを証明するために、IIS で実行されているプロセスにデバッガーを接続しました)。

#include <iostream>

int main(int argc, char** argv )
{
    std::stringstream input_text;
    input_text << std::cin.rdbuf(); // application halts here

    std::cout << "Content-type: text/xml; charset=utf-8\n\n";
    return 0;
}

同じ問題について議論しているさまざまな人々を見つけましたが、解決策はありません。

  • 同様の問題(文字列 'IIS7 が STDIN を「すぐに」満たしていないようでした。予想されるバイト数全体の「readfile」を実行した場合、一部の Windows スレッドがどこかで「スタック」していました。)'
  • Python CGI での同様の問題
4

0 に答える 0