我们最近经历了从CF11升级到CF2023的过程。在我们的开发服务器上,一切似乎都按预期进行。然而,在我们的生产服务器上安装后,我们发现了一个奇怪的问题。
cfc 文件中的命令fileRead
似乎读取该文件,但在 cfc 处理完成后会抛出 500 错误。任何其他 cfc 中的任何其他命令(我们尚未发现)都不会出现此问题。我可以在我们的生产服务器上重现这个问题;但在开发(或测试)中使用相同的测试页面,代码可以正常工作。
我们直接的解决方法是使用cffile action="read"
. 这在开发和生产中似乎工作得很好。
在开发中工作但在生产中不起作用的示例测试代码(读取文件,根据代码转储内容,但随后 500 错误覆盖在文件转储上) - fileReadTest.cfc:
component {
struct function getRules() {
try {
var _rules = fileRead('[path]/configuration.json');
_rules = deserializeJSON(_rules);
return _rules;
} catch( any e) {
cfdump( var = e);
}
}
remote string function test() {
try {
var _r = getRules()
cfdump(var = _r);
return 'test'
} catch( any e) {
cfdump( var = e);
}
}
} …
Run Code Online (Sandbox Code Playgroud)