CGI +长POST内容/请求=已解散的进程和502页

时间:2013-09-26 23:14:47

标签: iis cgi

我们注意到IIS 7.5 + CGI模块存在一个奇怪的问题/错误行为。

将长内容(50k +字节)发布到CGI exe时,IIS不发送 通过STDIN向我们的CGI exe提供的全部内容。

IIS发送给exe的内容的长度不是固定大小,所以它 可能不是缓冲区大小问题等等!

cgi exe的行为如下:

  1. 获取HTTP标头的内容长度
  2. 从内容长度
  3. 中指定的STDIN中读取尽可能多的字节
  4. 做一些神奇的工作并退出
  5. 因为并非所有字节都由IIS / CGI模块转发到我们的exe文件, exe文件/进程正在“永远”运行并且没有返回 任何内容。几分钟后(超时),进程被终止。

    任何建议/提示/等等......提前致谢

    的问候, mherderich

1 个答案:

答案 0 :(得分:0)

这可能是常见的Windows CR + LF问题。 CR + LF转换完成后,内容长度可能不准确,因为CR + LF被转换为单个chàracter\n