Esporta (0) Stampa
Espandi tutto
1 di 1 hanno valutato il contenuto utile: - Valuta questo argomento

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

Aggiornamento: maggio 2013

Quando si crea un pacchetto o si pubblica l'applicazione Windows 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 dell'applicazione. Se si riceve un avviso o un errore nella fase dell'impacchettamento, è possibile risparmiare tempo risolvendo questi problemi prima di distribuire l'applicazione Windows 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 Windows Azure. Vedere Procedura: Configurazione di un progetto Windows Azure con Visual Studio.

Nella tabella seguente sono mostrati gli avvisi principali per la convalida del pacchetto per un'applicazione Windows Azure e un collegamento a maggiori dettagli per ogni avviso.

 

Numero errore

Messaggio

Ulteriori informazioni

WAT150

Il progetto ‘ProjectName’ è dipendente dall'assembly seguente: ‘NomeAssembly’. Questo assembly non è incluso nel pacchetto. Per assicurare l'avvio del ruolo, aggiungere questo assembly come riferimento al progetto e impostare la proprietà Copia localmente su true.

Includere file nel pacchetto del servizio

WAT151

Il progetto ‘<nome del progetto>’ è dipendente dall'assembly seguente: ‘<nome dell'assembly>’. Questo assembly non è incluso nel pacchetto e deve essere installato nella GAC. Per assicurare l'avvio del ruolo, aggiungere questo assembly come riferimento nel progetto e impostare la proprietà Copia localmente su true. Quindi, utilizzare un'attività di avvio affinché il ruolo aggiunga l'assembly alla GAC.

WAT152

Il progetto ‘<nome del progetto>’ è dipendente dall'assembly seguente: ‘<nome dell'assembly>’. Questo assembly viene installato nella Global Assembly Cache (GAC) da un file Windows Installer (file con estensione msi). Per assicurare l'avvio del ruolo, è necessario installare questo 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 ‘<nome progetto>’ è dipendente dall'assembly MVC seguente: <nome assembly>. Questi assembly devono essere aggiunti al pacchetto o devono essere installati nella macchina virtuale per il ruolo. Per più dettagli su questo, vedere la pagina della Guida seguente: http://go.microsoft.com/fwlink/?LinkId=218227.

Pubblicare un progetto MVC come ruolo Web

WAT160

Il progetto ‘<nome progetto>’ contiene l'assembly seguente: ‘<nome assembly>’. Questo assembly non è compatibile con l'architettura del processore a 64 bit utilizzata da IIS in Windows Azure. Per assicurare l'avvio del ruolo, è necessario sostituire questo assembly con uno compatibile con questa 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 ulteriori informazioni su come eseguire l'operazione, vedere Abilitare la modalità dell'applicazione a 32 bit nel pool di applicazioni IIS utilizzando 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 '<nome impostazione>' deve essere configurata per utilizzare l'emulatore della risorsa di archiviazione locale per il ruolo '<nome ruolo>' nel file di configurazione '<nome file>'. Per accedere ai servizi di archiviazione Windows Azure, è necessario fornire una stringa di connessione alla risorsa di archiviazione Windows Azure valida.

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

WAT180

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

Per ulteriori informazioni sull'impostazione della proprietà Considera gli avvisi come errori, vedere Procedura: Configurazione di un progetto Windows Azure con Visual Studio.

WAT190

Il progetto '<nome progetto>' ha come destinazione ’<versione di .NET Framework>’. Per assicurare l'avvio del ruolo, è necessario che questa versione di .NET Framework sia installata nella macchina virtuale per tale ruolo. È possibile utilizzare un'attività di avvio per installare la versione richiesta, se non è già installato come parte del sistema operativo guest Windows Azure.

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

WAT230

La stringa di connessione 'DefaultConnection' utilizza un database locale '.\SQLEXPRESS' nel progetto '<nome progetto>'. Questa stringa di connessione non funzionerà quando si esegue questa applicazione in Windows Azure. Per accedere a un database differente, è necessario aggiornare la stringa di connessione nel file web.config. Per più dettagli su questo, vedere la pagina della Guida seguente: http://go.microsoft.com/fwlink/?LinkId=224877.

Utilizzare 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 l'applicazione per accedere alla macchina virtuale e diagnosticare eventuali problemi. Per ulteriori informazioni sull'utilizzo di Desktop remoto per Windows Azure, vedere Utilizzo del Desktop remoto con i ruoli Windows Azure.

Un altro approccio per determinare perché non è possibile avviare un ruolo è abilitare IntelliTrace per la distribuzione. Per ulteriori informazioni sull'abilitazione di IntelliTrace per un'applicazione Windows Azure, vedere Debug di un servizio cloud pubblicato con IntelliTrace e Visual Studio.

Per assistenza con la risoluzione degli altri problemi di errore di ruolo, vedere Troubleshooting Roles that Fail to Start.

Creare un'attività di avvio per un ruolo

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 attività seguenti:

  • 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 utilizzando questi file dopo la creazione della macchina virtuale per tale ruolo.

ImportantImportante
Se i file per l'attività di avvio sono in una sottodirectory, è possibile che l'attività di avvio debba accedere alla directory del file batch quando i comandi vengono eseguiti sulla macchina virtuale. È possibile utilizzare la variabile seguente 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 utilizzare il comando seguente per eseguire un file exe (StartUp.exe) individuato nella stessa cartella del file batch: %~dp0StartUp.exe.

Per creare un'attività di avvio per un ruolo

  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 utilizzando Blocco note o assicurarsi di salvare un file creato in Visual Studio con codifica. Per salvare un file in Visual Studio con codifica, utilizzare i passaggi seguenti:

    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.

      La finestra di dialogo Salva file con nome viene visualizzata.

    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 istruzioni XML seguenti 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>
    
    

    Ecco 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 l'applicazione Windows Azure. Se necessario, è possibile creare una connessione Desktop remoto per la macchina virtuale per il ruolo quando si pubblica l'applicazione. È quindi possibile connettersi alla macchina virtuale e verificare che le attività di avvio siano in esecuzione correttamente. Per ulteriori informazioni sull'utilizzo di Desktop remoto con i ruoli Windows Azure, vedere Utilizzo del Desktop remoto con i ruoli Windows Azure.

Per passaggi dettagliati sulla creazione di un'attività di avvio per un ruolo, vedere How to Define Startup Tasks for a Role. Se è necessario utilizzare variabili di ambiente con l'attività di avvio, è possibile definire variabili di ambiente per un ruolo nel file di definizione del servizio. Per ulteriori informazioni, vedere How to Define Environment Variables Before a Role Starts.

Per collegamenti a ulteriori informazioni sulle attività di avvio per un ruolo, vedere Starting Tasks Before Role Instances Start in Windows Azure.

Pubblicare un progetto MVC come ruolo Web in Windows Azure

Se si desidera pubblicare un progetto MVC come ruolo Web in Windows Azure, è necessario assicurarsi che siano disponibili tutti gli assembly MVC necessari quando il ruolo Web è in esecuzione in Windows Azure. Se si crea un progetto MVC come un ruolo Web utilizzando i modelli forniti dagli ultimi strumenti di Windows 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:

Per aggiungere assembly per un progetto MVC3 esistente

  1. Se si utilizza Visual Studio Service Pack per pubblicare l'applicazione Windows Azure, utilizzare i passaggi seguenti 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.

      La finestra di dialogo Aggiungi dipendenze distribuibili viene visualizzata.

    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 utilizza Visual Studio Service Pack 1 per pubblicare l'applicazione Windows Azure, è possibile eseguire una delle attività seguenti per assicurarsi che l'applicazione Windows Azure sia in esecuzione correttamente quando viene distribuita in Windows Azure:

    1. Aggiungere riferimenti agli assembly seguenti 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 ulteriori informazioni sull'aggiunta di un riferimento per un assembly a un progetto di ruolo Web, vedere Includere file nel pacchetto del servizio.

    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 ulteriori informazioni sulle attività di avvio, vedere la sezione precedente: Crea un'attività di avvio per un ruolo.

Per aggiungere assembly per un progetto MVC2 esistente

  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à.

    La finestra Proprietà viene visualizzata.

  2. Nell'elenco Copia localmente scegliere True.

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

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

ImportantImportante
È necessario disporre di una sottoscrizione che consenta di utilizzare un'istanza di database SQL ospitata da Windows Azure. Se si accede alla sottoscrizione dal portale di gestione di Windows Azure, è possibile determinare i servizi forniti dalla sottoscrizione. Per informazioni sulla modifica della stringa di connessione, vedere Come effettuare la migrazione e la pubblicazione di un'applicazione Web da Windows Azure da Visual Studio.

Vedere anche

Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.

Aggiunte alla community

Mostra:
© 2014 Microsoft. Tutti i diritti riservati.