我得到的Magento CE 1.6.1.0为什么Mage_Persistent断/ API/WSDL?肥皂
Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cookie - headers already sent by (output started at /home/dev/env/var/www/user/dev/wdcastaging/lib/Zend/Controller/Response/Abstract.php:586) in /home/dev/env/var/www/user/dev/wdcastaging/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 119
内的下列错误访问/api/soap/?wsdl
显然当,一个session_start()
正在尝试整个后WSDL文件的内容已经输出,导致错误。
为什么在输出所有数据后,magento尝试启动会话?我很高兴你问。所以看起来controller_front_send_response_after
正在被Mage_Persistent吸引,以便调用synchronizePersistentInfo()
,这反过来最终得到了session_start()
。
有趣的是,这不是始终发生,最初WSDL加载对我来说很好,最初我绞尽脑汁想看看我们的安装可能导致定制化,但我所做的追踪似乎表明,这一切都发生在核心内部。
我们也经历了一点点与Mage_Persistent的(完全不相关的)陌生感,这让我更愿意在这一点上抛出我的双手,因此它。
我已经做了一些搜索,并发现一些问题与整个“头已发送”的事情在一般情况下,但不是这个具体情况。
有什么想法?
噢,临时解决方法,我已经到位,只需通过persistent/options/enable
配置数据禁用Mage_Persistent。我还做了一点挖掘,看是否有可能观察一个事件,以便为WSDL控制器禁用此模块只有(因为这似乎是唯一有问题的),但它看起来像模块完全依赖此配置标志来确定它的启用状态。
UPDATE:错误已被报道:http://www.magentocommerce.com/bug-tracking/issue?issue=13370
Magento版本? Mage_Persistant是一个相对较新的功能,如果这个漏洞通过裂缝,它不会让我感到惊讶。 – 2012-04-05 19:11:52
嘿,艾伦,啊,是的,很好的问题 - 我1.11.0 – kalenjordan 2012-04-05 19:58:39