Share via


Sincronizzare IIS

di Fede 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 effettuare 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 Web Deployment Agent (MsDepSvc o "servizio agente remoto".)

Quali sono i modi in cui è possibile eseguire la sincronizzazioneusando 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 sia la destinazione che 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 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 mapping di script o componenti installati usati 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 di script per il sito.

  4. Compilare un elenco dei componenti necessari nella destinazione.

Per i passaggi dettagliati sull'analisi dell'output di getDependencies, vedere 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 quanto segue in uso 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 cosa accadrebbe se la sincronizzazione fosse stata eseguita. Il flag -whatif non mostrerà ogni modifica; mostrerà solo una visualizzazione ottimistica di cosa potrebbe cambiare se tutto riesce (ad esempio, non intercetterà 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 remota).

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

      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 in esecuzione:

    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 .

Riepilogo

A questo punto è stato 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.