Condividi tramite


Il nome specificato è già in uso

Quando si distribuisce in Azure, è possibile che la distribuzione iniziale fallisca con un errore simile al seguente:

"Il nome specificato è già in uso"

Questo articolo descrive diverse tecniche per evitare questo problema.

Sintomi

Quando si distribuisce un progetto di .NET Aspire in Azure, le risorse nel modello di app vengono trasformate in risorse Azure. Alcune risorse Azure hanno nomi con ambito globale, come ad esempio Azure App Configuration, in cui tutte le istanze si trovano nello spazio dei nomi globale [name].azconfig.io.

Il valore di [name] deriva dal nome della risorsa .NET.NET Aspire, insieme ai caratteri casuali in base al nome del gruppo di risorse. Tuttavia, la stringa generata può superare la lunghezza consentita per il nome della risorsa in Configurazione app. Di conseguenza, alcuni caratteri vengono troncati per garantire la conformità.

Quando si verifica un conflitto nello spazio dei nomi globale, la risorsa non viene distribuita perché la combinazione di [name]+[truncated hash] non è sufficientemente univoca.

Possibili soluzioni

Una soluzione alternativa consiste nell'evitare di usare nomi comuni come appconfig o storage per le risorse. Scegliere invece un nome più significativo e specifico. Ciò riduce il potenziale di conflitto, ma non lo elimina completamente. In questi casi, è possibile usare metodi di callback per impostare un nome specifico ed evitare di usare completamente la stringa calcolata.

Si consideri l'esempio seguente:

var appConfig = builder.AddAzureAppConfiguration(
    "appConfig",
    (resource, construct, store) =>
{
    store.AssignProperty(p => p.Name, "'noncalculatedname'");
});