托管在IIS上的PHP在每次交替调用时给出500


PHP hosted on IIS gives 500 on every alternate call

我有一个PHP脚本,其中使用passthru()函数执行批处理(.bat)文件。批处理文件的输出是通过echo语句打印出来的。

这个PHP脚本在Apache web服务器上运行得很好,但是同样的PHP脚本在IIS 7.5上运行时,每次调用都会产生500.0错误

我做了一些研究,发现如果PHP脚本需要很长时间来执行,浏览器会变得无响应。

因此,我编辑了PHP脚本,将其写入像"执行批处理文件之前"answers"执行批处理文件之后"这样的文件。

由于显示了500.0错误,文件仍在按上述行进行更新。由此得出结论,虽然脚本正在执行,但浏览器显示的是500.0

在IIS中是否有可以调整的设置?此问题仅在IIS 7.5中出现。当我使用Apache时,它像一个魅力。

我和你有同样的问题;通过exec()、shell_exec()等执行批处理文件,每隔一次刷新页面就会导致内部500服务器错误。

我通过从批处理文件中删除所有PAUSE命令来解决这个问题。

确保批处理文件的流程中没有任何中断。也就是说,如果在执行批处理脚本期间的任何时候需要用户输入,php将挂起,服务器将超时。

希望这对你有帮助!

(我想评论,但我没有50的声誉)