Risolvere i problemi dei ruoli del servizio cloud di Azure (versione classica) che non vengono avviati
Importante
Servizi cloud (versione classica) è ora deprecato per i nuovi clienti e verrà ritirato il 31 agosto 2024 per tutti i clienti. Le nuove distribuzioni devono usare il nuovo modello di distribuzione basato su Azure Resource Manager, Servizi cloud di Azure (supporto "Extended").
Ecco alcuni problemi e soluzioni comini correlati ai ruoli di Servizi cloud di Azure che non vengono avviati.
Se il problema riguardante Azure non viene risolto con le informazioni in questo articolo, visitare i forum di Azure su Microsoft Q&A e Stack Overflow. È possibile pubblicare il problema in questi forum o in @AzureSupport su Twitter. È anche possibile inviare una richiesta di supporto tecnico di Azure. Per inviare una richiesta di supporto, selezionare Supporto tecnico nella pagina del supporto di Azure.
File DLL o dipendenze mancanti
I problemi dovuti a ruoli che non rispondono e ruoli che passano in ciclo tra gli stati Inizializzazione, Occupato e Arresto possono essere provocati da file DLL o assembly mancanti.
I sintomi di file DLL o assembly mancati includono i seguenti:
- L'istanza del ruolo passa in ciclo tra gli stati Inizializzazione, Occupato e Arresto.
- L'istanza del ruolo è passata allo stato Pronto , ma, se si passa all'applicazione Web, la pagina non viene visualizzata.
Sono disponibili diversi metodi consigliati per esaminare questi problemi.
Diagnosticare i problemi di DLL mancanti in un ruolo Web
Quando si passa a un sito Web distribuito in un ruolo Web e il browser visualizza un errore server simile al seguente, è possibile che indichi una DLL mancante.
Diagnosticare i problemi disabilitando gli errori personalizzati
Per visualizzare informazioni sugli errori più completi, configurare il file web.config per il ruolo Web per poter disattivare la modalità di errore personalizzata e ridistribuire il servizio.
Per visualizzare errori più completi senza usare Desktop remoto:
Aprire la soluzione in Microsoft Visual Studio.
In Esplora soluzioniindividuare il file web.config e aprirlo.
Nel file web.config individuare la sezione system.web e aggiungere la riga seguente:
<customErrors mode="Off" />
Salvare il file.
Ricreare il pacchetto e ridistribuire il servizio.
Quando il servizio viene ridistribuito, verrà visualizzato un messaggio di errore con il nome dell'assembly o della DLL mancante.
Diagnosticare i problemi visualizzando l'errore in remoto
È possibile usare Desktop remoto per accedere al ruolo e visualizzare informazioni sugli errori più complete in remoto. Seguire questa procedura per visualizzare gli errori usando Desktop remoto:
- Verificare che sia installato Azure SDK 1.3 o versione successiva.
- Durante la distribuzione della soluzione con Visual Studio, abilitare Desktop remoto. Per altre informazioni, vedere Enable Remote Desktop Connection for a Role in Azure Cloud Services using Visual Studio (Abilitare una connessione Desktop remoto per un ruolo in Servizi cloud di Azure con Visual Studio).
- Quando lo stato dell'istanza è Pronto, nel portale di Microsoft Azure accedere in remoto all'istanza. Per altre informazioni sull'utilizzo di Desktop remoto con Servizi cloud di Microsoft Azure, vedere Accedere in remoto alle istanze del ruolo.
- Accedere alla macchina virtuale usando le credenziali specificate durante la configurazione di Desktop remoto.
- Aprire una finestra di comando.
- Digitare
IPconfig
. - Annotare il valore dell'indirizzo IPV4.
- Aprire Internet Explorer.
- Digitare l'indirizzo e il nome dell'applicazione Web, Ad esempio,
http://<IPV4 Address>/default.aspx
.
Se si passa al sito Web, ora verranno restituiti messaggi di errore più espliciti:
- Errore del server nell'applicazione '/'.
- Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per altre informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.
- Dettagli dell'eccezione: System.IO.FIleNotFoundException: Impossibile caricare il file o l'assembly 'Microsoft.WindowsAzure.StorageClient, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf856ad364e35' o una delle relative dipendenze. Non è possibile trovare il file specificato.
Ad esempio:
Diagnosticare i problemi usando l'emulatore di calcolo
È possibile usare l'emulatore di calcolo di Microsoft Azure per diagnosticare e risolvere i problemi relativi a dipendenze mancanti e gli errori del file web.config.
Per ottenere risultati ottimali con questo metodo di diagnosi, è consigliabile usare un computer o una macchina virtuale in cui è presente un'installazione pulita di Windows. Per simulare in modo ottimale l'ambiente Azure, usare Windows Server 2008 R2 x64.
- Installare la versione autonoma di Azure SDK.
- Nel computer di sviluppo compilare il progetto di servizio cloud.
- In Esplora risorse passare alla cartella bin\debug del progetto di servizio cloud.
- Copiare la cartella con estensione csx e il file con estensione cscfg nel computer usato per eseguire il debug dei problemi.
- Nel computer pulito aprire una finestra del prompt dei comandi di Azure SDK e digitare
csrun.exe /devstore:start
. - Al prompt dei comandi digitare
run csrun <path to .csx folder> <path to .cscfg file> /launchBrowser
. - All'avvio del ruolo, verranno visualizzate informazioni dettagliate sull'errore in Internet Explorer. È anche possibile usare gli strumenti di risoluzione dei problemi standard di Windows per diagnosticare ulteriormente il problema.
Diagnosticare i problemi usando IntelliTrace
Per i ruoli di lavoro e i ruoli Web che fanno uso di .NET Framework 4, è possibile usare IntelliTrace, disponibile in Microsoft Visual Studio Enterprise.
Seguire questa procedura per distribuire il servizio con IntelliTrace abilitato:
- Verificare che sia installato Azure SDK 1.3 o versione successiva.
- Distribuire la soluzione usando Visual Studio. Durante la distribuzione selezionare la casella di controllo Abilita IntelliTrace per ruoli .NET 4 .
- Dopo l'avvio dell'istanza, aprire Esplora server.
- Espandere il nodo Azure\Servizi cloud e trovare la distribuzione.
- Espandere la distribuzione finché non vengono visualizzate le istanze del ruolo. Fare clic con il pulsante destro del mouse su una delle istanze.
- Scegliere Visualizza log IntelliTrace. Verrà visualizzato il Riepilogo IntelliTrace .
- Individuare la sezione delle eccezioni del riepilogo. Se sono presenti eccezioni, la sezione sarà denominata Dati eccezione.
- Espandere Dati eccezionee cercare errori System.IO.FileNotFoundException analoghi al seguente:
Risolvere DLL e assembly mancanti
Per risolvere errori di assembly e DLL mancanti, seguire questa procedura:
- Aprire la soluzione in Visual Studio.
- In Esplora soluzioni aprire la cartella Riferimenti.
- Fare clic sull'assembly specificato nell'errore.
- Nel riquadro Proprietà trovare la proprietà Copia localmente e impostare il valore su True.
- Ridistribuire il servizio cloud.
Dopo avere verificato che tutti gli errori sono stati corretti, è possibile distribuire il servizio senza selezionare la casella di controllo Abilita IntelliTrace per ruoli .NET 4 .
Passaggi successivi
Altri articoli sulla risoluzione dei problemi per i servizi cloud.
Per informazioni su come risolvere i problemi dei ruoli del servizio cloud utilizzando i dati di diagnostica del calcolo Azure PaaS, vedere la serie di blog di Kevin Williamson.