设想 -
DEV:客户上传 104KB csv 文件到指定目录,然后读取并填充到数据表中。
Request Size Limits
Maximum number of POST request parameters 100
Maximum size of post data 20MB
Request Throttle Threshold 4MB
Request Throttle Memory 200MB
DEV 是一台单一服务器。
QA:客户上传 104KB csv 文件,文件已上传至指定目录,但未读入表
Request Size Limits
Maximum number of POST request parameters 100
Maximum size of post data 20MB
Request Throttle Threshold 4MB
Request Throttle Memory 200MB
叙述 -
QA 通过具有启用 cookie 的会话持久性的 F5 设备在两台服务器之间进行负载平衡。两台服务器都通过 CF10 Enterprise 沙箱配置为访问相同的数据区域。代码升级是自动从 DEV 到 QA 再到 PROD 的服务器堆栈。代码在 DEV 中按预期运行,但在 QA 中却不行,这让我怀疑服务器配置存在差异或负载平衡会话问题。我已经验证了单服务器 DEV 环境和双服务器 QA 环境中的请求大小限制是否匹配。
修改 QA 为:
Request Size Limits
Maximum number of POST request parameters 100
Maximum size of post data 100MB
Request Throttle Threshold 100MB
Request Throttle Memory 500MB
对该过程不做任何处理,浏览器仍然超时。我没有看到 CF 管理员记录的任何内容表明失败,也没有看到 IIS 日志中任何内容表明失败。我可能忽略了什么?提前致谢。
答案1
CF 和 IIS/Apache 中都有一个限制器,请检查您的 Web 服务器上传限制并进行更改。您可以通过配置文件(例如 web.config)创建一个覆盖。还可以增加应用程序中的 CF 超时(如果您处理较大的文件,则可采取更好的措施)。
答案2
Coldfusion 在 neo-runtime.xml 中有一个隐藏的设置,名为 postParametersLimit。默认情况下,它设置为 100 - 这意味着您不能向 cfm 页面发布超过 100 个参数。您可以将此数字设置得更高,以避开您看到的错误。查看Cutter 的博客有关该文件位于何处以及如何解决此问题的更多详细信息。