Problemi comuni che comportano il riciclo dei ruoliCommon issues that cause roles to recycle

Questo articolo illustra alcune delle cause comuni dei problemi di distribuzione e fornisce suggerimenti per consentirne la risoluzione.This article discusses some of the common causes of deployment problems and provides troubleshooting tips to help you resolve these problems. La presenza di un problema con un'applicazione viene evidenziata se l'istanza del ruolo non si avvia o se lo stato passa ciclicamente da inizializzazione a occupato e arresto.An indication that a problem exists with an application is when the role instance fails to start, or it cycles between the initializing, busy, and stopping states.

Se il problema riguardante Azure non è trattato in questo articolo, visitare i forum di Azure su MSDN e Stack Overflow.If your Azure issue is not addressed in this article, visit the Azure forums on MSDN and the Stack Overflow. È possibile pubblicare il problema in questi forum o in @AzureSupport su Twitter.You can post your issue in these forums, or post to @AzureSupport on Twitter. È anche possibile inviare una richiesta di supporto tecnico di Azure.You also can submit an Azure support request. Per inviare una richiesta di supporto tecnico, nella pagina Supporto tecnico di Azure selezionare Supporto.To submit a support request, on the Azure support page, select Get support.

Dipendenze di runtime mancantiMissing runtime dependencies

Se un ruolo nell'applicazione si basa su un'assembly che non fa parte di .NET Framework o della libreria gestita di Azure, è necessario includere tale assembly in modo esplicito nel pacchetto dell'applicazione.If a role in your application relies on any assembly that is not part of the .NET Framework or the Azure managed library, you must explicitly include that assembly in the application package. Tenere presente che in Azure non sono disponibili per impostazione predefinita altri framework di Microsoft.Keep in mind that other Microsoft frameworks are not available on Azure by default. Se il ruolo si basa su un framework di questo tipo, è necessario aggiungere tali assembly al pacchetto dell'applicazione.If your role relies on such a framework, you must add those assemblies to the application package.

Prima di compilare e includere in un pacchetto l'applicazione, verificare quanto segue:Before you build and package your application, verify the following:

  • Se si usa Visual Studio, assicurarsi che la proprietà Copia localmente sia impostata su True per ogni assembly di riferimento nel progetto che non fa parte di Azure SDK o .NET Framework.If using Visual studio, make sure the Copy Local property is set to True for each referenced assembly in your project that is not part of the Azure SDK or the .NET Framework.
  • Verificare che il file web.config non faccia riferimento ad alcun assembly inutilizzato nell'elemento di compilazione.Make sure the web.config file does not reference any unused assemblies in the compilation element.
  • La proprietà Azione di compilazione di ciascun file con estensione cshtml è impostata su Contenuto.The Build Action of every .cshtml file is set to Content. Ciò garantisce che i file vengano visualizzati correttamente nel pacchetto e consente la visualizzazione anche di altri file di riferimento.This ensures that the files will appear correctly in the package and enables other referenced files to appear in the package.

Riferimento dell'assembly alla piattaforma errataAssembly targets wrong platform

Azure è un ambiente a 64 bit,Azure is a 64-bit environment. pertanto gli assembly .NET compilati per una destinazione a 32 bit non funzioneranno in Azure.Therefore, .NET assemblies compiled for a 32-bit target won't work on Azure.

Generazione di eccezioni non gestite da parte del ruolo durante l'inizializzazione o l'arrestoRole throws unhandled exceptions while initializing or stopping

Eventuali eccezioni generate dai metodi della classe RoleEntryPoint, che include i metodi OnStart, OnStop e Run, sono eccezioni non gestite.Any exceptions that are thrown by the methods of the RoleEntryPoint class, which includes the OnStart, OnStop, and Run methods, are unhandled exceptions. Se si verifica un'eccezione non gestita in uno di questi metodi, il ruolo verrà riciclato.If an unhandled exception occurs in one of these methods, the role will recycle. Se il ruolo viene riciclato più volte, è possibile che venga generata un'eccezione non gestita a ogni tentativo di avvio.If the role is recycling repeatedly, it may be throwing an unhandled exception each time it tries to start.

Restituzioni del ruolo dal metodo RunRole returns from Run method

È previsto che il metodo Run , venga eseguito in modo illimitato.The Run method is intended to run indefinitely. Se tramite il codice viene eseguito l'override del metodo Run , il codice deve essere sospeso per un periodo illimitato.If your code overrides the Run method, it should sleep indefinitely. Se tramite il metodo Run viene restituito un valore, il ruolo viene riciclato.If the Run method returns, the role recycles.

Impostazione di DiagnosticsConnectionString errataIncorrect DiagnosticsConnectionString setting

Se l'applicazione usa Diagnostica di Azure, il file cscfg deve specificare l'impostazione di configurazione DiagnosticsConnectionString .If application uses Azure Diagnostics, your service configuration file must specify the DiagnosticsConnectionString configuration setting. Questa impostazione deve specificare una connessione HTTPS all'account di archiviazione in Azure.This setting should specify an HTTPS connection to your storage account in Azure.

Per assicurarsi che l'impostazione DiagnosticsConnectionString sia corretta, prima di distribuire il pacchetto dell'applicazione in Azure, verificare quanto segue:To ensure that your DiagnosticsConnectionString setting is correct before you deploy your application package to Azure, verify the following:

  • L'impostazione DiagnosticsConnectionString punti a un account di archiviazione valido in Azure.The DiagnosticsConnectionString setting points to a valid storage account in Azure.
    Per impostazione predefinita, questa impostazione punta all'account di archiviazione emulato, pertanto è necessario modificarla in modo esplicito prima di distribuire il pacchetto dell'applicazione.By default, this setting points to the emulated storage account, so you must explicitly change this setting before you deploy your application package. Se non si modifica questa impostazione, viene generata un'eccezione quando l'istanza del ruolo tenta di avviare il monitoraggio di diagnostica.If you do not change this setting, an exception is thrown when the role instance attempts to start the diagnostic monitor. Ciò potrebbe comportare il riciclo illimitato dell'istanza del ruolo.This may cause the role instance to recycle indefinitely.
  • La stringa di connessione viene specificata nel formatoseguente.The connection string is specified in the following format. Il protocollo deve essere specificato come HTTPS. Sostituire MyAccountName con il nome dell'account di archiviazione e MyAccountKey con la chiave di accesso dell'account:(The protocol must be specified as HTTPS.) Replace MyAccountName with the name of your storage account, and MyAccountKey with your access key:

      DefaultEndpointsProtocol=https;AccountName=MyAccountName;AccountKey=MyAccountKey
    

    Se l'applicazione viene sviluppata usando Strumenti di Azure per Microsoft Visual Studio, è possibile usare le pagine delle proprietà per impostare questo valore.If you are developing your application by using Azure Tools for Microsoft Visual Studio, you can use the property pages to set this value.

Chiave privata non inclusa nel certificato esportatoExported certificate does not include private key

Per eseguire un ruolo Web in SSL, è necessario assicurarsi che nel certificato di gestione esportato sia inclusa la chiave privata.To run a web role under SSL, you must ensure that your exported management certificate includes the private key. Se si usa Gestione certificati di Windows per esportare il certificato, selezionare per l'opzione Esporta la chiave privata.If you use the Windows Certificate Manager to export the certificate, be sure to select Yes for the Export the private key option. Il certificato deve essere esportato nel formato con estensione PFX, l'unico attualmente supportato.The certificate must be exported in the PFX format, which is the only format currently supported.

Passaggi successiviNext steps

Altri articoli sulla risoluzione dei problemi per i servizi cloud.View more troubleshooting articles for cloud services.

Per altri scenari di riciclo dei ruoli, vedere la serie di blog di Kevin Williamson.View more role recycling scenarios at Kevin Williamson's blog series.