Esporta (0) Stampa
Espandi tutto

Risoluzione dei problemi relativi a errori e avvisi del pacchetto di convalida

Aggiornamento: agosto 2014

Quando si crea un pacchetto o si pubblicano progetti di servizi cloud di Azure, potrebbero essere visualizzati uno o più avvisi o errori. Questi avvisi ed errori possono consentire di identificare e risolvere problemi che impedirebbero la distribuzione o la pubblicazione del progetto. Se si riceve un avviso o un errore nella fase dell'impacchettamento, è possibile risparmiare tempo risolvendo questi problemi prima di distribuire il progetto Azure. Non è necessario attendere il completamento della distribuzione e il successivo errore.

Per impostazione predefinita, i problemi della convalida del pacchetto vengono trattati come avvisi e non impediranno la distribuzione del ruolo. Per modificare il valore predefinito e impedire la distribuzione, impostare la proprietà Considera gli avvisi come errori su True per il progetto Azure. Vedere Procedura: Configurare un progetto di servizio cloud di Azure con Visual Studio.

La seguente tabella visualizza gli avvisi principali per la convalida del pacchetto di un progetto Azure e un collegamento a ulteriori dettagli relativi a ciascun avviso.

 

Numero errore

Messaggio

Altre informazioni

WAT150

Il progetto 'NomeProgetto' dipende dal seguente assembly: ‘AssemblyName’. L'assembly non è contenuto nel pacchetto. Per essere certi che il ruolo venga avviato, aggiungere questo assembly come riferimento al progetto e impostare la proprietà Copia localmente su true.

Include Files in the Service Package

WAT151

Il progetto 'NomeProgetto' dipende dal seguente assembly: ‘AssemblyName’. L'assembly non è contenuto nel pacchetto e deve essere installato nella cache globale. Per essere certi che il ruolo venga avviato, aggiungere questo assembly come riferimento nel progetto e impostare la proprietà Copia localmente su true. Quindi, usare un'attività di avvio per il ruolo per aggiungere l'assembly alla cache globale.

WAT152

Il progetto 'NomeProgetto' dipende dal seguente assembly: ‘AssemblyName’. L'assembly viene installato nella cache globale da un file Windows Installer (file con estensione msi). Per essere certi che il ruolo venga avviato, è necessario installare il file Windows Installer tramite un'attività di avvio per il ruolo o aggiungere questo assembly come riferimento nel progetto e impostare la proprietà Copia localmente su true.

WAT153

Il progetto Web 'NomeProgetto' dipende dal seguente assembly MVC: AssemblyName. Questi assembly devono essere aggiunti al pacchetto o installati nella macchina virtuale per il ruolo. Per altri dettagli, vedere la seguente pagina della Guida: http://go.microsoft.com/fwlink/?LinkId=218227.

Pubblicare un progetto MVC come ruolo Web

WAT160

Il progetto 'NomeProgetto' contiene il seguente assembly: ‘AssemblyName’. L'assembly non è compatibile con l'architettura del processore a 64 bit usato da IIS in Azure. Per essere certi che il ruolo venga avviato, sostituire questo assembly con un altro compatibile con tale architettura.

Se si dispone di un'attività di avvio per configurare IIS per eseguire applicazioni a 32 bit, è possibile ignorare questo messaggio di avviso. Per altre informazioni su come eseguire l'operazione, vedere Abilitare la modalità dell'applicazione a 32 bit nel pool di applicazioni IIS usando un'attività di avvio.

In caso contrario, rimuovere l'assembly dal progetto e aggiungere un assembly che è compatibile con l'architettura del processore a 64 bit. Quindi creare un nuovo pacchetto o pubblicare l'applicazione.

WAT170

L'impostazione di configurazione 'NomeImpostazione' deve essere configurata per l'uso dell'emulatore di archiviazione locale per il ruolo 'NomeRuolo' nel file di configurazione 'NomeFile'. Per accedere ai servizi di archiviazione di Azure, fornire una stringa di connessione valida all'account di archiviazione di Azure.

Per altre informazioni sull'aggiunta di una stringa di connessione del servizio di archiviazione Azure valida, vedere Configurazione dei servizi richiesti per pubblicare un servizio cloud da Visual Studio.

WAT180

Creazione del pacchetto non riuscita a causa di errori di convalida. È necessario correggere gli errori o impostare la proprietà Considera gli avvisi come errori su false per questo progetto Azure.

Per altre informazioni sull'impostazione della proprietà Considera gli avvisi come errori, vedere Procedura: Configurare un progetto di servizio cloud di Azure con Visual Studio.

WAT190

Il progetto 'NomeProgetto' è destinato a '.NETFrameWorkVersion'. Per essere certi che il ruolo venga avviato, è necessario che questa versione di .NET Framework sia installata nella macchina virtuale per tale ruolo. È possibile usare un'attività di avvio per installare la versione richiesta, se non è già installata con il sistema operativo guest Azure.

Usare un'attività di avvio affinché un ruolo installi una versione specifica di .NET Framework.

WAT230

La stringa di connessione 'ConnessionePredefinita' sta usando un database locale '.\SQLEXPRESS' nel progetto 'NomeProgetto' e non funzionerà quando si esegue l'applicazione in Azure. Per accedere a un database differente, aggiornare la stringa di connessione nel file Web.config. Per altri dettagli, vedere la seguente pagina della Guida: http://go.microsoft.com/fwlink/?LinkId=224877

Usare un database SQL Azure con i provider Universal ASP.NET

Se è impossibile avviare un ruolo, è necessario controllare la finestra di output di compilazione/distribuzione del pacchetto per verificare che non ci siano avvisi di convalida o errori. È anche possibile configurare una connessione Desktop remoto quando si pubblica il progetto per accedere alla macchina virtuale e diagnosticare eventuali problemi. Per altre informazioni, vedere Uso di Desktop remoto con i ruoli Azure.

Un altro approccio per determinare perché non è possibile avviare un ruolo è abilitare IntelliTrace per la distribuzione. Per altre informazioni, vedere Debug di un servizio cloud pubblicato con IntelliTrace e Visual Studio e Avvio di ruoli di risoluzione dei problemi non completato.

Quando un ruolo viene creato in una macchina virtuale, è necessario aggiungere un'attività di avvio che verrà eseguita dopo che è stata creata la macchina virtuale e prima che venga avviato il ruolo. Questa attività consente di garantire il corretto avvio del ruolo. Ad esempio, potrebbe essere necessario eseguire una delle seguenti attività:

  • Installare un file Windows Installer.

  • Aggiungere un assembly a GAC.

  • Installare una versione specifica del .NET Framework richiesto per il ruolo.

Le attività di avvio che si aggiungono per un ruolo vengono eseguite dalla riga di comando. È possibile creare un file batch per eseguire un set di comandi o aggiungere i comandi specifici che si desidera essere in esecuzione. Si aggiungono i file per l'attività di avvio al progetto in modo che vengano installati quando viene distribuito il pacchetto del servizio. L'attività di avvio viene eseguita usando questi file dopo la creazione della macchina virtuale per tale ruolo.

ImportantImportante
Se i file per l'attività di avvio sono in una sottocartella, è possibile che l'attività di avvio debba accedere alla directory del file batch quando i comandi vengono eseguiti sulla macchina virtuale. È possibile usare la seguente variabile per accedere alla directory del file batch: %~dp0. Notare che questa variabile contiene l'unità e il percorso per il file batch e aggiunge una barra rovesciata alla fine del percorso. Ad esempio, è possibile usare il seguente comando per eseguire un file .exe (StartUp.exe) che si trova nella stessa cartella del file batch: %~dp0StartUp.exe.

  1. (Facoltativo) È possibile creare un file batch se si desidera eseguire insieme un set di comandi per l'attività di avvio. Il file che si crea per eseguire un'attività di avvio non deve includere un indicatore per l'ordine dei byte. Per evitare questo problema, è possibile creare il file per l'esecuzione dell'attività di avvio usando Blocco note o assicurarsi di salvare un file creato in Visual Studio con codifica. Per salvare un file in Visual Studio con codifica, usare i seguenti passaggi:

    1. Per salvare un file in Visual Studio con codifica, verificare che il file venga visualizzato nella finestra dell'editor di Visual Studio. Sulla barra dei menu scegliere File, Salva <Nomefile> con nome.

      Viene visualizzata la finestra di dialogo Salva file con nome.

    2. Per salvare il file con codifica, fare clic sulla freccia a discesa sul pulsante Salva e scegliere Salva con codifica.

      La finestra di dialogo Opzioni di salvataggio avanzate viene visualizzata.

    3. Nell'elenco Codifica scegliere Unicode (UTF-8 con firma digitale). Tabella codici 65001, quindi scegliere il pulsante OK.

  2. Per aggiungere una cartella per l'attività di avvio, creare una cartella nel progetto per il ruolo che richiede un'attività di avvio. Ad esempio, se è un progetto di ruolo Web chiamato WebRole1 che richiede che si installi un file Windows Installer aggiungere una cartella chiamata Avvio in questo progetto di ruolo Web.

  3. Per aggiungere i file alla cartella, aprire il menu di scelta rapida per la cartella e scegliere Aggiungi, Elemento esistente. Scegliere i file richiesti per l'attività di avvio, inclusi i file batch, quindi scegliere il pulsante Aggiungi.

    I file vengono visualizzati in Esplora soluzioni sotto la cartella creata.

  4. Per includere nel pacchetto del servizio questi file senza tentare di compilarli, aprire il menu di scelta rapida per ciascun file e scegliere Proprietà. Nella visualizzazione Proprietà, nell'elenco a discesa Azione di compilazione scegliere Nessuno e nell'elenco a discesa Copia nella directory di output scegliere Copia se più recente.

  5. Per aggiungere l'attività di avvio al ruolo, aprire il menu di scelta rapida per il file di definizione del servizio ServiceDefinition.csdef e scegliere Apri. Aggiungere le seguenti istruzioni XML all'elemento del ruolo che richiede questa attività di avvio. Questo comando presuppone che sia stata creata una cartella per le attività di avvio denominata Avvio e che questo file o comando batch richieda privilegi elevati. Il comando può essere un file exe, un file batch, un file .msi o una qualsiasi istruzione della riga di comando valida.

    
    <Startup>
       <Task commandLine="startup\<command>" executionContext="elevated" taskType="simple" />
    </Startup>
    
    

    Di seguito viene illustrato un esempio dell'elemento webrole in un file di definizione del servizio con un'attività di avvio aggiunta:

    
    <WebRole name="WebRole1">
        <Sites>
          <Site name="Web">
            <Bindings>
              <Binding name="Endpoint1" endpointName="Endpoint1" />
            </Bindings>
          </Site>
        </Sites>
        <Endpoints>
          <InputEndpoint name="Endpoint1" protocol="http" port="80" />
        </Endpoints>
        <Imports>
          <Import moduleName="Diagnostics" />
          <Import moduleName="RemoteAccess" />
          <Import moduleName="RemoteForwarder" />
        </Imports>
        <Startup>
          <Task commandLine="startup\StartUpTask.cmd" executionContext="elevated" />
        </Startup>
    </WebRole>
    
    
  6. Per verificare che l'attività di avvio sia in esecuzione, pubblicare il progetto Azure. Se necessario, è possibile creare una connessione Desktop remoto per la macchina virtuale per il ruolo quando si pubblica il progetto. È quindi possibile connettersi alla macchina virtuale e verificare che le attività di avvio siano in esecuzione correttamente. Per altre informazioni sull'uso di Desktop remoto con i ruoli Azure, vedere Uso di Desktop remoto con i ruoli Azure.

Per altre informazioni, vedere Definire le attività di avvio per un ruolo. Se è necessario usare variabili di ambiente con l'attività di avvio, è possibile definire variabili di ambiente per un ruolo nel file di definizione del servizio. Per altre informazioni, vedere Definire le variabili di ambiente prima dell'avvio di un ruolo o Eseguire attività di avvio in Azure.

Se si desidera pubblicare un progetto MVC come ruolo Web in Azure, è necessario assicurarsi che siano disponibili tutti gli assembly MVC necessari quando il ruolo Web è in esecuzione in Azure. Se si crea un progetto MVC come un ruolo Web usando i modelli forniti dagli ultimi strumenti di Azure per Visual Studio, gli assembly che si richiedono vengono aggiunti automaticamente al pacchetto del servizio. In questa situazione, non verrà visualizzato un messaggio di avviso sulla mancanza di assembly MVC quando viene creato il pacchetto del servizio.

Per correggere un messaggio di avviso relativo alla mancanza di assembly MVC, è necessario seguire la procedura che si applica al progetto MVC:

  1. Se si usa Visual Studio Service Pack 1 per pubblicare il progetto Azure, usare i seguenti passaggi per aggiungere riferimenti agli assembly e includerli nel pacchetto del servizio:

    1. Aprire il menu di scelta rapida per il progetto MVC e scegliere Aggiungi dipendenze distribuibili.

      Verrà visualizzata la finestra di dialogo Aggiungi dipendenze distribuibili.

    2. Selezionare la casella di controllo ASP.NET MVC e scegliere il pulsante OK.

      Gli assembly saranno aggiunti quando si crea un pacchetto del servizio. Gli assembly saranno installati quindi nella macchina virtuale per questo ruolo Web quando viene distribuito il pacchetto del servizio.

  2. Se non si usa Visual Studio Service Pack 1 per pubblicare il progetto Azure, è possibile eseguire una delle seguenti attività per assicurarsi che il progetto Azure sia in esecuzione correttamente quando viene distribuito in Azure:

    1. Aggiungere riferimenti ai seguenti assembly al progetto di ruolo Web, quindi impostare la proprietà Copia localmente su True:

      • Microsoft.Web.Infrastructure

      • System.Web.Helpers

      • System.Web.Mvc

      • System.Web.Razor

      • System.Web.WebPages

      • System.Web.WebPages.Deployment

      • System.Web.WebPages.Razor

      noteNota
      Per altre informazioni su come aggiungere un riferimento relativo a un assembly a un progetto di ruolo Web, vedere Include Files in the Service Package.

    2. Aggiungere un'attività di avvio al ruolo Web per installare gli assembly MVC3. Creare una cartella nel progetto chiamato avvio. Quindi aggiungere il file AspNetMVC3Setup.exe a questa cartella. Infine, aggiungere questo XML al file di definizione del servizio nell'elemento del ruolo Web:

      
      <Startup>
         <Task commandLine="startup\AspNetMVC3Setup.exe /q /log mvc3_install.htm" executionContext="elevated" />
      </Startup>
      
      
      noteNota
      Leggere un intervento sul blog sull'aggiunta di un'attività di avvio per gli assembly MVC3. Per altre informazioni sulle attività di avvio, vedere la sezione precedente: Creare un'attività di avvio per un ruolo.

  1. Se si riceve questo messaggio di avviso per un progetto MVC2, il riferimento per l'assembly System.Web.Mvc deve già essere aggiunto al progetto di ruolo Web. Per includere questo assembly nel pacchetto del servizio, aprire il menu di scelta rapida per l'assembly e scegliere Proprietà.

    Verrà visualizzata la finestra Proprietà.

  2. Nell'elenco Copia localmente scegliere True.

Quando si crea un ruolo Web MVC 3 con gli strumenti di Azure per Visual Studio, il ruolo Web viene configurato per l'uso dei provider Universal ASP.NET. Per impostazione predefinita, questi provider sono configurati per l'uso di un database LocalDB nella stringa di connessione ConnessionePredefinita. Quando si pubblica il progetto Azure, è necessario modificare la stringa di connessione per l'uso di un'istanza di database SQL ospitata da Azure.

ImportantImportante
Per effettuare questa operazione, è necessario disporre di una sottoscrizione che consenta di usare un'istanza di database SQL ospitata da Azure. Se si accede alla sottoscrizione dal portale di gestione di Microsoft Azure, è possibile determinare i servizi forniti dalla sottoscrizione. Per altre informazioni, vedere Procedura: eseguire la migrazione e la pubblicazione di un'applicazione Web in Azure da Visual Studio.

Vedere anche

Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft