я получаю следующее сообщение об ошибке в Magento CE 1.6.1.0Почему Mage_Persistent отключающая/апи/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, которая заставляет меня немного более охотно поднять руки вверх и так.
Я немного поработал над SO и нашел некоторые вопросы, связанные со всей переданной «заголовками» вообще, но не в этом конкретном случае.
Любые мысли?
О, и временное обходное решение, которое у меня на месте, - это просто отключить Mage_Persistent с помощью данных конфигурации persistent/options/enable
. Я также немного поработал над тем, можно ли наблюдать событие, чтобы отключить этот модуль только для контроллера WSDL (поскольку это, похоже, единственный, у кого проблемы), но похоже, что это модуль полагается исключительно на этот флаг конфигурации, чтобы определить его статус включен.
UPDATE: Bug было сообщено: http://www.magentocommerce.com/bug-tracking/issue?issue=13370
Magento версия? Mage_Persistant - относительно новая функция, меня это не удивило бы, если бы это проскользнуло сквозь трещины. –
Эй, Алан, да, хороший вопрос - ME 1.11.0 – kalenjordan