2013-10-29 8 views
14

Sto tentando di distribuire un servizio cloud con 1 ruolo Web in Azure.Le istanze del ruolo sono state riciclate un numero di volte durante un'operazione di aggiornamento o di aggiornamento

Quando lo faccio, ottengo questo messaggio:

Your role instances have recycled a number of times during an update or upgrade operation. This indicates that the new version of your service or the configuration settings you provided when configuring the service prevent the role instances from running. Verify your code does not throw unhandled exceptions and that your configuration settings are correct and then start another update or upgrade operation. 

Il progetto funziona bene a livello locale, e sto attraversando un periodo difficile capire come avviare il debug questo problema. Ci sono problemi comuni che causano questo messaggio o dei passaggi per capire cosa lo causa?

risposta

-1

Con il rilascio di Windows Azure SDK versione 2.2 per Visual Studio 2012 e 2013, ora è possibile Remote Debug Cloud Resources within Visual Studio.

Una volta che il servizio cloud è stato pubblicato ed è attivo dal vivo nel cloud, è sufficiente impostare un punto di interruzione nel codice sorgente locale. Questo può aiutarti a scavare cosa sta andando storto!

+2

L'utente afferma che il suo problema è con la distribuzione non dell'applicazione in esecuzione – Darren

0

Vorrei desktop remoto per l'istanza cloud e rivedere i registri eventi di Windows per eccezioni o ridistribuire con IntelliTrace abilitato. Se si sceglie il momento, è possibile scaricare i registri IntelliTrace da Visual Studio ed eseguire il debug

http://msdn.microsoft.com/en-us/library/windowsazure/ff683671.aspx

+0

FYI Richiede la versione definitiva di VS – Darren

0

Un modo per scoprire l'errore effettivo è quello di cliccare sul "1 istanza" nella parte superiore del cruscotto dopo aver provato per distribuire il tuo ruolo web. Ti dirà lo stato dell'istanza del ruolo. Lo stato dovrebbe includere più informazioni sul tipo di errore che blocca la distribuzione.

Dipende dal tuo caso. Per me, lo stato ha affermato che avevo un'eccezione di sicurezza non gestita. Dopo alcune indagini, ho scoperto che sotto il mio ruolo OnStart(), ho provato a creare una fonte di eventi. Tuttavia, il servizio di Azure non ha il permesso di creare una fonte di eventi.

Per i problemi più possibile, controllare http://blogs.msdn.com/b/kwill/archive/2013/09/06/troubleshooting-scenario-3-role-stuck-in-busy.aspx

1

Abbiamo avuto problemi simili, ed è stato a causa di alcuni DDL non è riuscito a caricare. (a causa della versione diversa da quella che MS ha distribuito nella VM)

Provare a impostare CopyLocal su "true" per tutti i riferimenti nel progetto e ridistribuire.

+4

TUTTI i riferimenti? Gesù Cristo. lol – Hill

1

Abbiamo anche avuto questo fastidioso problema e nel nostro caso:

  1. Usiamo storage locale, ma non è stato definito nella definizione del servizio (o in dei lavoratori di ruolo)
  2. Il nostro progetto ruolo lavoratore ha di riferimento a un progetto di servizio che ha riferimento al progetto del livello dati. Ma il progetto del ruolo lavoratore non ha riferimento al progetto del livello dati. Non appena aggiunto il riferimento al progetto del livello dati nel progetto del ruolo di lavoro, viene distribuito correttamente.

Problema # 1 può essere facilmente notato se si prima esegue il progetto nel computer locale. Verrà generata un'eccezione

Il problema n. 2, tuttavia, è più difficile, principalmente perché funziona correttamente nella macchina locale.Dopo 5 giorni di risoluzione dei problemi, abbiamo finalmente trovato il problema. Quindi, controlla tutti i riferimenti e prova ad aggiungere progetti di sottoreferenza, quelli a cui fanno riferimento altri riferimenti.

0

Per me, il problema era con le mie regole del firewall SQL di SQL Azure. I miei server di database SQL di Azure non sono impostati su "Consenti accesso ai servizi di Azure", pertanto devo elencare esplicitamente gli IP consentiti.

L'ho scoperto dopo aver completato il mio codice in un try/catch che ha inghiottito tutte le eccezioni, refactoring i miei metodi OnStart() e RunAsync() e impostando tutti i miei riferimenti su Copy Local = True. Niente di tutto questo ha funzionato, poi ho visto che avevo questa linea nella mia RunAsync() metodo:

log4net.Config.XmlConfigurator.Configure(); 

Sto usando l'AdoNetAdapter per log4net e la connessione a un Azure SQL DB per la registrazione, in modo che mi ha portato a verificare le regole del firewall.

0

Per me, ho avuto una versione diversa dei pacchetti di nuget nei miei vari progetti. Una volta che ho consolidato tutto alla stessa versione (s), ha funzionato bene.

Problemi correlati