我正在使用Adobe Air和PHP与Zend Framework进行远程处理。
目前在一台特定的机器上,我在Air应用程序对php函数的第一次调用中收到“在收到确认之前已断开连接通道”错误。
我尝试使用一些调试语句运行php文件,这些工作正常,所以它不是php连接到数据库的问题。从flex调用的函数也被调用(它被记录到最后一个return语句之前),但控件永远不会返回到flex。我还通过具有相同参数值的php文件直接调用相同的函数来确认,并且它正确地返回预期值。所以我很肯定它不是一个例外,因为一些PHP错误代码。
整个设置在其他机器上完美运行。我不想盲目地重新安装所有东西,因为我想知道可能导致这种情况的设置。
我可能缺少什么想法?
答案 0 :(得分:0)
遇到了同样的错误。我正在关注Richard Bates教程VTC Adobe Air和PHP开发
最有用的提示是在apache日志中(一旦你右键单击wamp-> Apache-> Apache日志就可以看到)。
默认情况下,最新日志显示在底部。
当flex .swf文件访问它时,找不到包含路径并导致致命错误。
从wamp访问php文件(服务和支持php文件)工作正常。
Apache错误日志示例:
致命错误:require()[function.require]:无法打开所需的'../DBConnection.php'(include_path ='。; c:\ php \ includes; d:\ wamp \ library; D:\ wamp \ www \ EmployeeDirectory \ include \ services')在第3行的D:\ wamp \ www \ EmployeeDirectory \ include \ services \ EmployeeService.php,referer:app:/EmployeeDirectory.swf
所以要么将相关文件的路径添加到php.ini include_path,要么为文件路径使用常量。
感谢理查兹提供了这么棒的教程:)
可替换地:
检查
网关类
为zend
设置了serive类包含在gateway.php的第一行
$ basedir = $ _SERVER ['DOCUMENT_ROOT']。'YourProjectFolderInWamp /'; 要求($ BASEDIR “包括/服务/ YourService.php”);
记得在某处使用zend amf的set class方法..
$ server-> setClass(new YourService());