Domanda

Quando si fa clic su Magento Connect Manager da admin, di fronte a questo errore:Mago chiave del registro di sistema "_singleton/admin/sessione" esiste già

È stato utile?

Soluzione

Non ho una soluzione, ma sono in grado di spiegare perché/quando questo sta accadendo.

TL;DR: Nel tuo caso il modello admin/session non è istanziato o non esiste e Mage::getModel('admin/session') restituisce false

Spiegazione completa

C'è un bug (o meglio ancora un'incoerenza) in Mage::getSingleton metodo.
E ' stato lì per secoli.

Il metodo simile a questo:

public static function getSingleton($modelClass='', array $arguments=array())
{
    $registryKey = '_singleton/'.$modelClass;
    if (!self::registry($registryKey)) {
        self::register($registryKey, self::getModel($modelClass, $arguments));
    }
    return self::registry($registryKey);
} 

Ora diamo un'occhiata al Mage::register metodo

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

Notare il throwException.È esattamente quello che tu vedi come messaggio di errore.Se c'è già un valore nel registro di sistema per un certo tasto, si ottiene un errore.
Nel tuo caso si ottiene questo errore, perché c'è già un valore per la chiave _singleton/admin/session.Questo accade in un caso.
Tornando all' getSingleton metodo, questo è il bug/incoerenza:

 if (!self::registry($registryKey)) {

Questa condizione ritorno true quando il valore registrato per chiavi specifiche null, false, 0.
Questo accade quando getModel restituisce false.(quando un modello di classe non viene trovato).

Si dovrebbe verificare se si dispone di estensioni di riscrivere la sessione di amministrazione di classe, o è possibile eseguire il debug a partire dai metodi sopra per vedere perché si è sempre questo errore.

Altri suggerimenti

Se si ha la modalità di manutenzione, renderlo spento.chiara cache.e riprovare per accedere a Magento Connect Manager.Spero che funzionerà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top