1

管理パネルをロードすると、このエラーが発生しました。

どうすればこれを解決できますか?

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}
4

4 に答える 4

3

ウスマンが言ったことは正しいですが、謎はこれがどのように起こるのでしょうか?

彼女はAWの拡張機能を使用している必要があり、オブザーバーがあります。<controller_action_predispatch> クラスを呼び出しawall/feed_extensions、タイプSingleton します。そのため、名前でレジストリが作成されます_singleton/awall/feed_extensions 。デバッグするには、phpのデバッグバックトレースを使用できます。この行をあなたの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ため()、2回以上呼び出されることはないはずです。結果を記録します[MagentosRoot]/var/log/system.log

管理パネルで、ログ設定がオンになっていることを確認してください。

System > Configuration > Developer > Log Settings > Enabled [Yes]

現在、管理パネルを開くことができないため、データベースから直接変更する必要があります。このクエリを使用して、ログ設定がオンになっているかどうかを確認します。

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)

値=1は、オンになっていることを意味します。データベースにその値がない場合は、次のように挿入します。

insert into core_config_data (scope, scope_id, path, value) values ('default', 0, 'dev/log/active', 1);

データベースの値が0の場合は、1に変更します。

于 2012-08-01T14:40:45.030 に答える
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 に変更してから、admin にログインします。

それから

システム - >ツール - >コンパイルに移動して無効にします。

最初に app/etc/modules/aw_all.xml に移動し、 false を true に変更します

app/etc/modules/aw_blog.xml に移動し、false を true に変更します

そして、それが機能しているかどうかを確認します..

于 2013-07-12T07:59:34.873 に答える
0

私はこの質問に遅れましたが、昨夜同じ問題を抱えていました。この回答が他の誰かに役立つことを願っています(このエラーには1日かかりました)。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 -> var -> cache に移動し、「cache」フォルダー内のすべての「mage-*」フォルダーを削除することでした (注: cdn.cache ファイルを保持しています)。

于 2015-07-29T18:29:03.467 に答える
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;
}

そのため、別の名前で登録してみてください。

于 2012-08-01T10:04:58.590 に答える