Condividi tramite


Sincronizzare IIS

di Faith A

Questa guida rapida illustra il processo di utilizzo dello strumento di distribuzione Web per sincronizzare un sito Web in un computer di origine IIS in un computer di destinazione IIS. A tale scopo, è possibile eseguire il push dei dati in una destinazione remota o "pull" di dati da un'origine remota. Questa guida mostrerà entrambi i metodi, nonché un'opzione per usare un file di pacchetto in modo che non sia necessario installare il servizio agente di distribuzione Web (MsDepSvc o "servizio agente remoto".)

Quali sono i modi in cui è possibile eseguire la sincronizzazione con lo strumento di distribuzione Web?

  • Push (sincronizzazione da un'origine locale a una destinazione remota)
  • Pull (sincronizzazione da un'origine remota a una destinazione locale)
  • Sincronizzazione indipendente (avviare una sincronizzazione da un computer in cui la destinazione e l'origine sono remote)
  • Sincronizzazione locale manuale (creare un file di pacchetto dell'origine e copiarlo nella destinazione, quindi eseguirlo in locale)

Prerequisiti

Questa guida richiede i prerequisiti seguenti:

  • .NET Framework 2.0 SP1 o versione successiva
  • Strumento di distribuzione Web 1.1

Nota: se lo strumento di distribuzione Web non è già stato installato, vedere Installazione e configurazione della distribuzione Web.

Parte 1: Visualizzare le dipendenze del sito

  1. Ottenere le dipendenze del sito Web eseguendo il comando seguente:

    msdeploy -verb:getDependencies -source:apphostconfig="Default Web Site"
    
  2. Esaminare l'output delle dipendenze e cercare eventuali mappe script o componenti installati in uso dal sito. Ad esempio, se l'autenticazione di Windows è in uso dal sito Web, verrà visualizzato <dependency name="WindowsAuthentication" />.

  3. Se il sito eredita mappe script, queste non verranno elencate nelle dipendenze ed è necessario esaminare manualmente le mappe script per il sito.

  4. Compilare un elenco dei componenti necessari nella destinazione.

Per i passaggi dettagliati sull'analisi dell'output di getDependencies, vedere Visualizzazione delle dipendenze del sito Web.

Parte 2: Configurare la destinazione (destinazione)

Esaminare l'elenco delle dipendenze e installarle nel server di destinazione. Si supponga, ad esempio, di avere usato quanto segue per il sito Web:

  • ASP.NET
  • Autenticazione di Windows
  • Autenticazione anonima

In base all'analisi delle dipendenze, è necessario installare tali componenti nel server di destinazione prima di eseguire la sincronizzazione.

Parte 3: sincronizzare il sito con la destinazione

  1. Eseguire sempre un backup dei server di destinazione e di origine. Anche se si esegue solo il test, consente di ripristinare facilmente lo stato del server. Eseguire il comando seguente per eseguire il backup di un server IIS 7 o versione successiva:

    %windir%\system32\inetsrv\appcmd add backup "PreMsDeploy"
    
  2. Installare il servizio agente remoto nell'origine o nella destinazione a seconda che si voglia "eseguire il pull" dei dati da un'origine remota o "eseguire il push" dei dati in una destinazione remota.

  3. Avviare il servizio nel computer.

    net start msdepsvc
    
  4. Eseguire il comando seguente per convalidare ciò che accadrebbe se la sincronizzazione fosse stata eseguita. Il flag -whatif non mostrerà tutte le modifiche; mostrerà solo una visualizzazione ottimistica di ciò che potrebbe cambiare se tutto riesce (ad esempio, non intercetta gli errori in cui non è possibile scrivere nella destinazione).

    • Push a destinazione remota, in esecuzione nel computer di origine (l'argomento computerName identifica il computer di destinazione remoto).

      msdeploy -verb:sync -source:apphostconfig="Default Web Site" -dest:apphostconfig="Default Web Site",computername=Server1 -whatif > msdeploysync.log
      
    • Pull da un'origine remota, in esecuzione nel computer di destinazione (l'argomento computerName identifica il computer di origine remota).

      msdeploy -verb:sync -source:apphostconfig="Default Web Site",computername=Server1 -dest:apphostconfig="Default Web Site" -whatif > msdeploysync.log
      
  5. Dopo aver verificato l'output, eseguire di nuovo lo stesso comando senza il flag -whatif :

    • Push a destinazione remota, in esecuzione nel computer di origine

      msdeploy -verb:sync -source:apphostconfig="Default Web Site" -dest:apphostconfig="Default Web Site",computername=Server1 > msdeploysync.log
      
    • Pull da un'origine remota, in esecuzione nel computer di destinazione

      msdeploy -verb:sync -source:apphostconfig="Default Web Site",computername=Server1 -dest:apphostconfig="Default Web Site" > msdeploysync.log
      

{Facoltativo - Sincronizzare il sito con la destinazione usando un file di pacchetto}

Se non si vuole usare il servizio remoto, è possibile usare invece un pacchetto (file compresso).

  1. Eseguire il comando seguente nel server di origine per creare un pacchetto del sito Web per la sincronizzazione:

    msdeploy -verb:sync  -source:apphostconfig="Default Web Site" -dest:package=c:\site1.zip
    
  2. Copiare il file del pacchetto nel server di destinazione.

  3. Eseguire il comando seguente nel server di destinazione per verificare cosa accadrebbe se la sincronizzazione fosse stata eseguita:

    msdeploy -verb:sync -source:package=c:\site1.zip -dest:apphostconfig="Default Web Site" -whatif > msdeploysync.log
    
  4. Dopo aver verificato l'output, eseguire di nuovo lo stesso comando senza il flag -whatif:

    msdeploy -verb:sync -source:package=c:\site1.zip -dest:apphostconfig="Default Web Site" > msdeploysync.log
    

La sincronizzazione del sito è stata completata. Per verificare, testare l'esplorazione del sito Web nel server di destinazione. Per informazioni sulla risoluzione dei problemi, vedere Risoluzione dei problemi relativi alla distribuzione Web.

Riepilogo

È stato ora sincronizzato un sito Web da un server IIS di origine a un server IIS di destinazione, inclusa la visualizzazione delle dipendenze, la configurazione del server IIS di destinazione e l'esecuzione della sincronizzazione.