Esporta (0) Stampa
Espandi tutto

Problemi comuni che causano il riciclo dei ruoli

Aggiornamento: gennaio 2014

In questa sezione sono elencate alcune delle cause comuni dei problemi di distribuzione e sono offerti suggerimenti per risolvere i problemi. Un'indicazione della presenza di un problema in un'applicazione è rappresentata dal mancato avvio dell'istanza del ruolo o dal relativo passaggio tra gli stati inizializzazione, occupato e arresto.

Dipendenze di runtime mancanti

Se un ruolo nell'applicazione si basa su un qualsiasi assembly che non fa parte di .NET Framework o della libreria gestita di Windows Azure, è necessario includere in modo esplicito questo assembly nel pacchetto dell'applicazione. Tenere presente che, per impostazione predefinita, non sono disponibili altri framework Microsoft in Windows Azure. Se il ruolo si basa su un framework di questo tipo, gli assembly devono essere aggiunti al pacchetto dell'applicazione.

Prima di compilare e assemblare l'applicazione, verificare quanto riportato di seguito:

  • Se si utilizza Visual Studio, la proprietà Copia localmente deve essere impostata su True per ogni assembly di riferimento nel progetto che non fa parte di Windows Azure SDK o .NET Framework. Se non si utilizza Visual Studio, è necessario specificare i percorsi per gli assembly di riferimento quando si chiama CSPack. Per ulteriori informazioni sull'utilizzo di CSPack, vedere Strumento da riga di comando CSPack.

  • Tramite il file web.config non viene fatto riferimento ad alcun assembly inutilizzato nell'elemento di compilazione e tutti i riferimenti puntano agli assembly che fanno parte di .NET Framework o Windows Azure SDK, la cui proprietà Copia localmente è impostata su True in Visual Studio oppure che sono inclusi nel pacchetto dell'applicazione eseguendo CSPack.

  • In ogni file con estensione cshtml Build Action è impostato su Content. In questo modo viene garantito che i file saranno visualizzati correttamente nel pacchetto e che in quest'ultimo potranno essere presenti anche altri file di riferimento.

L'assembly punta a una piattaforma non corretta

Windows Azure è un ambiente a 64 bit. Pertanto, gli assembly .NET compilati per una destinazione a 32 bit non funzioneranno in Windows Azure.

Tramite il ruolo vengono generate eccezioni non gestite durante l'inizializzazione o l'arresto

Tutte le eccezioni generate dai metodi della classe RoleEntryPoint, inclusi OnStart, OnStop e Run sono eccezioni non gestite. Se si verifica un'eccezione non gestita in uno di questi metodi, il ruolo verrà riciclato. Il riciclo ripetuto del ruolo potrebbe generare un'eccezione non gestita a ogni tentativo di avvio.

Restituzioni del ruolo dal metodo Run

È previsto che il metodo Run venga eseguito in modo illimitato. Se tramite il codice viene eseguito l'override del metodo Run, il codice deve essere sospeso per un periodo illimitato. Se tramite il metodo Run viene restituito un valore, il ruolo viene riciclato.

Impostazione DiagnosticsConnectionString non corretta

Se nell'applicazione viene utilizzata la funzionalità Diagnostica Windows Azure, mediante il file di configurazione del servizio deve essere specificata l'impostazione di configurazione DiagnosticsConnectionString. È consigliabile che tramite questa impostazione venga specificata una connessione HTTPS all'account di archiviazione in Windows Azure.

Per assicurarsi che l'impostazione DiagnosticsConnectionString sia corretta prima di distribuire il pacchetto dell'applicazione in Windows Azure, verificare quanto riportato di seguito:

  • L'impostazione DiagnosticsConnectionString punta a un account di archiviazione valido in Windows Azure. Per impostazione predefinita, questa impostazione punta all'account di archiviazione emulato, pertanto è necessario modificare in modo esplicito questa impostazione prima di distribuire il pacchetto dell'applicazione. Se questa impostazione non viene modificata, viene generata un'eccezione quando tramite l'istanza del ruolo viene eseguito il tentativo di avvio del monitor di diagnostica. Ciò potrebbe comportare il riciclo illimitato dell'istanza del ruolo.

  • La stringa di connessione viene specificata nel formato seguente (il protocollo deve essere specificato come HTTPS). Sostituire MyAccountName con il nome dell'account di archiviazione e MyAccountKey con la chiave di accesso:

    DefaultEndpointsProtocol=https;AccountName=MyAccountName;AccountKey=MyAccountKey
    
    Per ulteriori informazioni sull'utilizzo delle stringhe di connessione, vedere Configurazione delle stringhe di connessione di Windows Azure.

Se l'applicazione viene sviluppata utilizzando gli strumenti di Windows Azure per Microsoft Visual Studio, è possibile utilizzare le pagine delle proprietà per impostare questo valore. Per ulteriori informazioni sull'utilizzo di Visual Studio per impostare i valori di configurazione, vedere Configuring the Cloud Service.

Nel certificato esportato non è inclusa la chiave privata

Per eseguire un ruolo Web in SSL, è necessario assicurarsi che nel certificato di gestione esportato sia inclusa la chiave privata. Se si utilizza Gestione certificati di Windows per esportare il certificato, assicurarsi di selezionare l'opzione Esporta la chiave privata. Il certificato deve essere esportato nel formato PFX, cioè l'unico attualmente supportato.

Vedere anche

Mostra:
© 2014 Microsoft