2011-01-26 11 views
9

Sono nuovo a MSDeploy e amministratore di IIS.MSDeploy e "sito in manutenzione" pagina

Per visualizzare una pagina "sito in manutenzione" vengono visualizzate due alternative.

1) Avere una pagina app_Offline.htm e sincronizzarla sul server all'avvio della manutenzione.

2) Creare una cartella separata con un sito completamente diverso (che può mostrare molte più informazioni dinamiche di quelle che possiamo con la pagina app_offline). Durante la manutenzione, è stato suggerito di modificare la mappatura della cartella virtuale del sito per puntare a questa altra cartella mentre lavoriamo all'aggiornamento del sito.

C'è un modo per modificare la cartella virtuale in modo che faccia riferimento a un'altra cartella utilizzando MSDeploy? C'è un altro modo per farlo tramite uno script piuttosto che dover andare su ciascun server e cambiare manualmente la cartella?

+1

quale versione di IIS stai usando? –

+0

Stiamo usando IIS7. – DevByDefault

risposta

16

Set app_offline utilizzando MSDeploy

Quello che abbiamo fatto in passato è quello di sceneggiatura nostre implementazioni che utilizzano Msdeploy.exe. Eseguiamo 3 comandi.

  1. Il primo comando distribuisce la pagina app_offline.htm.

    msdeploy -verb: sync -source: filePath = c: \ percorso \ app_offline.htm -dest: filePath = c: \ sito \ app_offline.htm

  2. In secondo luogo abbiamo effettivamente distribuire il sito utilizzando lo stesso " sincronizzare "verbo ma utilizzando un pacchetto.

  3. In terzo luogo rimuoveremo l'app_offline.htm utilizzando MSdeploy.

    msdeploy -verb: eliminare -dest: filePath = c: \ sito \ app_offline.htm

È possibile eseguire msdeploy su più server utilizzando l'interruttore di destinazione "nomecomputer". Come:

msdeploy -verb:sync -source:filePath=c:\location\app_Offline.htm,computername=sourcemachine -dest:filePath=c:\site\app_Offline.htm,computername=destmachine 

Potete trovare ulteriori informazioni su tutti i diversi parametri per l'utilizzo di msdeploy tramite linea di comando qui: http://technet.microsoft.com/en-us/library/dd568991%28WS.10%29.aspx

Creazione di una directory virtuale utilizzando MSDeploy

Se avete ancora voglia di creare la directory virtuale che suggerirei è la creazione di uno script PowerShell su ogni server di destinazione che farebbe questo per ogni server. Lo script PowerShell avrebbe avuto qualcosa di simile in esso:

New-Item 'IIS: \ Siti \ Default Web Site \ VirtualDirName' tipo VirtualDirectory -physicalPath c: \ test \ VirtualDirectory1

È possibile trovare maggiori informazioni sull'utilizzo di PowerShell per questo qui: http://learn.iis.net/page.aspx/433/powershell-snap-in-creating-web-sites-web-applications-virtual-directories-and-application-pools/

Quindi eseguire utilizzando msdeploy utalizing il provider "runcommand". Dovresti eseguire questa linea per server.

msdeploy -verb:sync -source:runCommand="net start createvirtualdir.ps" -dest:computername=destmachine 
+0

Grazie per la risposta. Ho bisogno di imparare PowerShell di più per testare questo. Aggiornerò quando avrò la possibilità di testarlo. – DevByDefault

+1

Se il tuo sito non pubblica App_Offline.htm da solo, il secondo passaggio che hai menzionato rimuoverà App_Offline.htm non appena avvierà la sincronizzazione del pacchetto. Quindi non funzionerà come previsto. PS. Il nuovo metodo consigliato per applicare App_Offline.htm è utilizzare [EnableMSDeployAppOffline] (http://blogs.msdn.com/b/webdev/archive/2013/10/30/web-publishing-updates-for-app-offline- e-usechecksum.aspx) pubblica il parametro del profilo. – Funbit

Problemi correlati