Indice dei contenuti
Una delle cose che si fanno meno volentieri quando si ha la necessità di configurare molteplici web server - ad esempio quando si cambia web farm o si ha la necessità di riconfigurare o aggiornare la propria infrastruttura - è configurare gli Application Pool e i Website in ciascuna istanza di IIS.
Fortunatamente, a partire da IIS7+, questa procedura può essere quasi interamente automatizzata grazie a una preziosa command-line utility chiamata appcmd, che rende possibile l'esportazione dell'intera configurazione degli App Pool e dei Webserver di IIS in formato XML e la successiva importazione da un'altra istanza: vediamo come.
Esportare gli Application Pool
Nella maggior parte dei casi sarà necessario partire con gli Application Pool, perché i Website si appoggiano ad essi per funzionare: qualsiasi tentativo di importare uno o più website che faccia riferimento a un Application Pool inesistente provocherà il blocco dell'intera procedura. Questo è il comando da utilizzare sul webservice di origine per esportare la totalità degli App Pool in un singolo file .xml:
1 |
%windir%\system32\inetsrv\appcmd list apppool /config /xml > c:\apppools.xml |
E' opportuno considerare che questo programma esporterà anche gli Application Pool predefiniti. Sarà necessario rimuoverli manualmente onde evitare problemi con la procedura di importazione. Per far questo, aprite il file apppools.xml appena creato e rimuovete i nodi relativi ai seguenti App Pool:
- DefaultAppPool
- Classic .NET AppPool
- .NET v2.0
- .NET v2.0 Classic
- .NET v4.5
- .NET v4.5 Classic
... e qualsiasi altro App Pool già presente sull'IIS di destinazione. Se ne dimenticherete qualcuno, non preoccupatevi: ve ne accorgerete quando proverete a lanciare la procedura di importazione, che si arresterà segnalandovi che ci sono uno o più problemi di nomi già in uso ancora da risolvere.
Importare gli Application Pool
Copiate il file apppools.xml sul webserver di destinazione e digitate il seguente comando:
1 |
%windir%\system32\inetsrv\appcmd add apppool /in < c:\apppools.xml |
Tutti gli Application Pool presenti all'interno del file saranno creati nella configurazione di IIS del webserver di destinazione.
Esportare i Website
Subito dopo aver finito con gli App Pools potrete passare ai Website. Aprite nuovamente una console command-line sul server di origine e digitate il seguente comando:
1 |
%windir%\system32\inetsrv\appcmd list site /config /xml > c:\websites.xml |
Ancora una volta dovrete occuparvi di rimuovere i website predefiniti - in questo caso soltanto uno, chiamato per l'appunto Default Website - e qualsiasi altro website già esistente sul webserver di destinazione o che volete evitare di copiare. Inutile dire che, anche stavolta, eventuali errori verranno segnalati dalla procedura di importazione che non avrà modo di avere luogo fino a quando il file conterrà uno o più nomi già in uso.
Importare i Website
Esattamente come fatto in precedenza con il file degli Application Pool, Copiate il file websites.xml sul webserver di destinazione e digitate il seguente comando:
1 |
%windir%\system32\inetsrv\appcmd add site /in < c:\websites.xml |
Esportare/Importare un AppPool e/o un Website specifico
Questi comandi possono essere utilizzati anche per esportare/importare un singolo Application Pool o un Website specifico. L'unico cambiamento da effettuare consiste nell'aggiunta alla command-line del nome dell'App Pool ovvero del Website che si desidera copiare alla command-line, nel seguente modo:
Esportare un Application Pool specifico
1 |
%windir%\system32\inetsrv\appcmd list apppool “CustomAppPool” /config /xml > c:\customapppool.xml |
Importare un Application Pool specifico
1 |
%windir%\system32\inetsrv\appcmd add apppool /in < c:\customapppool.xml |
Esportare un Website specifico
1 |
%windir%\system32\inetsrv\appcmd list site “CustomWebsite” /config /xml > c:\customwebsite.xml |
Importare un Website specifico
1 |
%windir%\system32\inetsrv\appcmd add site /in < c:\customwebsite.xml |
Per il momento è tutto: felice sviluppo!