2

我们注意到 IIS 7.5 + CGI 模块的一个奇怪问题/不当行为。

当向 CGI exe 发布长内容(50k+ 字节)时,IIS 不会通过 STDIN 将完整内容发送到我们的 CGI exe。

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

cgi exe 的行为如下:

  1. 获取 HTTP 标头的内容长度
  2. 从 STDIN 读取内容长度中指定的尽可能多的字节
  3. 做一些神奇的工作并退出

由于并非所有字节都由 IIS / CGI 模块转发到我们的 exe 文件,因此 exe 文件/进程“永远”运行并且不返回任何内容。该进程在几分钟后被终止(超时)。

任何建议/提示/等...在此先感谢

问候,默德里希

4

1 回答 1

0

这可能是常见的 Windows CR+LF 问题。完成 CR+LF 翻译后,内容长度可能不准确,因为 CR+LF 被翻译为单个字符\n

于 2016-04-19T10:05:37.467 回答