当我加载管理面板时,我收到了此错误。
我该如何解决这个问题?
There has been an error processing your request
Mage registry key "_singleton/awall/feed_extensions" already exists
Trace:
#0 /var/www/magento_upgrade/app/Mage.php(222): Mage::throwException('Mage registry k...')
#1 /var/www/magento_upgrade/app/Mage.php(476): Mage::register('_singleton/awal...', false)
#2 /var/www/magento_upgrade/app/code/core/Mage/Core/Model/App.php(1316): Mage::getSingleton('awall/feed_exte...')
#3 /var/www/magento_upgrade/app/Mage.php(447): Mage_Core_Model_App->dispatchEvent('controller_acti...', Array)
#4 /var/www/magento_upgrade/app/code/core/Mage/Core/Controller/Varien/Action.php(528): Mage::dispatchEvent('controller_acti...', Array)
#5 /var/www/magento_upgrade/app/code/core/Mage/Adminhtml/Controller/Action.php(160): Mage_Core_Controller_Varien_Action->preDispatch()
#6 /var/www/magento_upgrade/app/code/core/Mage/Core/Controller/Varien/Action.php(408): Mage_Adminhtml_Controller_Action->preDispatch()
#7 /var/www/magento_upgrade/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('index')
#8 /var/www/magento_upgrade/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#9 /var/www/magento_upgrade/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#10 /var/www/magento_upgrade/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#11 /var/www/magento_upgrade/index.php(87): Mage::run('', 'store')
#12 {main}
答案 0 :(得分:3)
乌斯曼所说的是对的,但神秘的是这怎么可能发生?
她必须使用AW的扩展程序,它在[{1}}中有一个观察者
它会调用课程<controller_action_predispatch>
,输入awall/feed_extensions
这就是它将创建名为Singleton
的注册表的原因
要调试它,我们可以使用php的调试回溯。
将此行放在_singleton/awall/feed_extensions
下的Mage.php
:
public static function registry
使用这个我们可以回溯谁调用注册表(除了观察者),因为在正常情况下不应该有任何代码直接调用注册表(public static function registry($key)
{
$str = Varien_Debug::backtrace(true, false);
if(!empty($str)){
Mage::log($str);
}
if (isset(self::$_registry[$key])) {
return self::$_registry[$key];
}
return null;
}
)所以它应该从未被调用过多次。
它会将结果记录在_singleton/awall/feed_extensions
确保您已在管理面板中启用了日志设置:
[MagentosRoot]/var/log/system.log
由于您目前无法打开管理面板,因此需要直接从数据库进行更改 使用此查询查看您是否已打开日志设置:
System > Configuration > Developer > Log Settings > Enabled [Yes]
value = 1表示您已打开它。 如果您的数据库中没有该值,只需插入它:
mysql> select * from core_config_data where path like 'dev/log/active';
+-----------+---------+----------+----------------+-------+
| config_id | scope | scope_id | path | value |
+-----------+---------+----------+----------------+-------+
| 244 | default | 0 | dev/log/active | 1 |
+-----------+---------+----------+----------------+-------+
1 row in set (0.00 sec)
如果数据库中的值为0,则将其更改为1.
答案 1 :(得分:0)
这是因为您已经注册了相同的密钥名称_singleton/awall/feed_extensions
。正如你在Mage.php中看到的那样
public static function register($key, $value, $graceful = false)
{
if (isset(self::$_registry[$key])) {
if ($graceful) {
return;
}
self::throwException('Mage registry key "'.$key.'" already exists');
}
self::$_registry[$key] = $value;
}
所以尝试使用其他名称注册。
答案 2 :(得分:0)
对我来说,它只是简单地删除与AheadWorks相关的所有文件(它们上的“AW”),并通过将每个文件放在相应的文件夹上来仔细重新安装。
在刷新管理页面之前,请找到Mage_Compiler.xml
,并确保有一行<active>false</active>
。
有点令人生畏。
否则,试试这个:
首先转到app / etc / modules / aw_all.xml 将true更改为false
首先转到app / etc / modules / aw_blog.xml 将true更改为false 然后登录管理员,管理员将立即工作。
然后
转到system-&gt; tools-&gt;编译 禁用它。
现在 首先转到app / etc / modules / aw_all.xml 将false更改为true
转到app / etc / modules / aw_blog.xml 将false更改为true
然后检查它是否正常工作..
答案 3 :(得分:0)
我迟到了这个问题,但我昨晚遇到了同样的问题,希望这个答案可以帮助其他人(这个错误让我花了一天时间)。我正在使用带有Mage World扩展的Magento 1.9应用程序。在我的本地环境中,我切换分支以处理其他事情,但我不断获得通用的Magento错误页面。看一下var / log / system.xml,我看到了:
a:5:{i:0;s:70:"Mage registry key "_singleton/onestepcheckout/observer" already exists";i:1;s:1691:"#0 C:\Sites\myintent-shop\app\Mage.php(223): Mage::throwException('Mage registry k...')
#1 C:\Sites\myintent-shop\app\Mage.php(477): Mage::register('_singleton/ones...', false)
#2 C:\Sites\myintent-shop\app\code\core\Mage\Core\Model\App.php(1316): Mage::getSingleton('onestepcheckout...')
#3 C:\Sites\myintent-shop\app\Mage.php(448): Mage_Core_Model_App->dispatchEvent('controller_acti...', Array)
#4 C:\Sites\myintent-shop\app\code\core\Mage\Core\Controller\Varien\Action.php(339): Mage::dispatchEvent('controller_acti...', Array)
#5 C:\Sites\myintent-shop\app\code\core\Mage\Cms\Helper\Page.php(113): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#6 C:\Sites\myintent-shop\app\code\core\Mage\Cms\Helper\Page.php(52): Mage_Cms_Helper_Page->_renderPage(Object(Mage_Cms_IndexController), 'home')
#7 C:\Sites\myintent-shop\app\code\core\Mage\Cms\controllers\IndexController.php(45): Mage_Cms_Helper_Page->renderPage(Object(Mage_Cms_IndexController), 'home')
#8 C:\Sites\myintent-shop\app\code\core\Mage\Core\Controller\Varien\Action.php(418): Mage_Cms_IndexController->indexAction()
#9 C:\Sites\myintent-shop\app\code\core\Mage\Core\Controller\Varien\Router\Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('index')
#10 C:\Sites\myintent-shop\app\code\core\Mage\Core\Controller\Varien\Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#11 C:\Sites\myintent-shop\app\code\core\Mage\Core\Model\App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#12 C:\Sites\myintent-shop\app\Mage.php(684): Mage_Core_Model_App->run(Array)
#13 C:\Sites\myintent-shop\index.php(87): Mage::run('', 'store')
#14 {main}";s:3:"url";s:1:"/";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:7:"default";}
原来我必须清除缓存目录。最简单的方法是转到root - &gt; var - &gt;缓存并删除“cache”文件夹中的所有“mage- *”文件夹(注意:我保留了cdn.cache文件)。