Come si esegue la migrazione di un sito IIS 7 su un altro server?


105

Mi chiedo quale sia la migliore pratica per spostare un sito Web su un altro server (insieme a tutte le impostazioni, ecc.)

  • Ricreare manualmente il sito sul nuovo server (non gestibile per ovvi motivi)
  • Copia il file delle impostazioni applicationHost.config
  • Usa appcmd per fare un backup e ripristinare
  • Utilizzare MSDeploy per pubblicare il sito sulla nuova macchina
  • Utilizza uno strumento di terze parti

Mi chiedevo solo quali siano state le esperienze degli altri.


Microsoft consiglia solo Web Deploy (dopo che questo strumento è stato creato), quindi prima di leggere le risposte di seguito, assicurati di sapere per quale sei completamente a tuo rischio.
Lex Li

Risposte:


134

Direi che esporta la configurazione del tuo server nel gestore IIS:

  1. In IIS manager, fare clic sul nodo Server
  2. Vai a Configurazione condivisa in "Gestione"
  3. Fare clic su "Esporta configurazione". (Puoi usare una password se li stai inviando su Internet, se li sposti semplicemente tramite una chiave USB, non preoccuparti.)
  4. Sposta questi file sul tuo nuovo server

    administration.config
    applicationHost.config
    configEncKey.key 
    
  5. Sul nuovo server, torna alla sezione "Configurazione condivisa" e seleziona "Abilita configurazione condivisa". Immettere la posizione nel percorso fisico di questi file e applicarli.

  6. Dovrebbe richiedere la password di crittografia (se impostata) e ripristinare IIS.

BAM! Vai a farti una birra!


8
Probabilmente dovrei usare il server di importazione o il pacchetto del sito invece di copiare i file, anche se non l'ho testato neanche questo. Ma so che ci sono percorsi di file in applicationHost.config che non saranno necessariamente presenti sul nuovo server, il che ne causerebbe l'interruzione. Inoltre, dovresti probabilmente menzionare che non possono esserci ALCUN sito attualmente in IIS, quindi questo processo non blocca la configurazione attualmente in esecuzione.
frogstarr78

16
L'ultimo passaggio non può essere sottovalutato. Di fondamentale importanza.
Rap

7
Non è una grande idea se stai migrando a una versione più recente di IIS. Altrimenti, questo è il modo per farlo.
Roy Tinker

1
Mi chiedo se potrebbe funzionare, perché non dovrebbe: docs.microsoft.com/en-us/iis/manage/…
vaso123

1
La configurazione condivisa di IIS non è stata progettata come un modo per migrare le impostazioni tra le macchine, quindi se riscontri un problema dopo questa risposta, morditi e non incolpare gli altri.
Lex Li

25

MSDeploy può migrare tutto il contenuto, la configurazione, ecc., Questo è ciò che consiglia il team di IIS. http://www.iis.net/extensions/WebDeploymentTool

Per creare un pacchetto, eseguire il comando seguente (sostituire Sito Web predefinito con il nome del sito Web):

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

Per ripristinare il pacchetto, eseguire il comando seguente:

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

1
Grazie Bill - avevo visto lo strumento ma ero diffidente perché era ancora in beta.
Kalid

1
Nel 2016 questo è ancora lo "stato dell'arte", ma MSDEPLOY 3.6 è davvero difficile da lavorare. Spero che prima o poi facciano qualcosa di nuovo.
Warren P

MSDeploy non ha trasferito i siti correttamente per noi. Ci siamo ritrovati con un sito contenente le applicazioni di ciascuno dei nostri siti, quindi l'intera struttura era sbagliata.
Brianary

Sicuramente è il modo consigliato e documentazione come docs.microsoft.com/en-us/iis/publish/using-web-deploy/… e docs.microsoft.com/en-us/iis/publish/using-web- deploy / ... sono fondamentali per gli utenti per padroneggiare i passaggi necessari e i punti chiave a cui devono prestare attenzione. La maggior parte dei problemi su Internet trova già risposta negli articoli. Se le persone dedicano abbastanza tempo a questo, Web Deploy non è uno strumento "difficile" da usare.
Lex Li

18

Ecco un utile sito Web sull'utilizzo di appcmd per esportare / importare una configurazione del sito. http://www.microsoftpro.nl/2011/01/27/exporting-and-importing-sites-and-app-pools-from-iis-7-and-7-5/


Grazie per il collegamento. Questo mi ha anche permesso di modificare l'ID del sito e qualsiasi altra cosa e non ho dovuto impostare 10 diverse applicazioni e 30 diverse directory virtuali. Grande risparmio di tempo
2GDave

Poiché questo approccio non si prende cura delle dipendenze sottostanti (moduli IIS e così via), usalo a tuo rischio.
Lex Li

12

Microsoft Web Deploy v3 può esportare e importare tutti i tuoi file, le impostazioni di configurazione, ecc. Mette tutto in un archivio zip pronto per essere importato sul nuovo server. Può persino eseguire l'aggiornamento a versioni più recenti di IIS (v7-v8).

http://www.iis.net/extensions/WebDeploymentTool

Dopo aver installato lo strumento: fare clic con il pulsante destro del mouse sul server o sul sito Web nella console di gestione IIS, selezionare "Distribuisci", "Esporta applicazione ..." ed eseguire l'esportazione.

Sul nuovo server, importa allo stesso modo l'archivio zip esportato.


ma richiede tutti i file. c'è un modo per evitare di prendere i file? se ad esempio migra un server FTP, cerca di raccogliere tutti i file e comprimerli.
RayofCommand

2
@RayofCommand: quando si selezionano le opzioni di distribuzione, è possibile cancellare l'elenco "Contenuto", quindi il pacchetto non include tutti i file.
Zhaph - Ben Duguid

1
Ma solo quando si distribuisce sito per sito ... non per un intero spostamento del server.
Ethan Allen

1
Dopo aver installato MS Web Deploy sul server di destinazione (IIS8), la console di gestione IIS non contiene nessuna delle opzioni di Web Deploy.
Brianary

1
Inoltre, non ho il menu "Distribuisci" dopo aver installato il pacchetto.
Devil's Advocate

3

usa appcmd per esportare uno o tutti i siti, quindi reimportali nel nuovo server. Potrebbe essere iis7.0 o 7.5 Quando si esporta utilizzando appcmd, le password vengono decrittografate, quindi reimportate e verranno nuovamente crittografate.


3

Non riesco a commentare il thread a causa della mancanza di rappresentante. Un altro commentatore ha dichiarato di non poter migrare da una versione inferiore a una versione superiore di IIS. Questo è vero se non unisci alcuni file, ma se lo fai puoi farlo perché ho appena migrato il mio sito IIS 7.5 a IIS 8.0 usando la risposta pubblicata da mastica.

Quando viene creata l'esportazione (II7.5), ci sono due file chiave (administration.config e applicationHost.config) che hanno riferimenti alle risorse sul server IIS7.5. Ad esempio, una DLL verrà indicata con una chiave pubblica e una versione specifica per 7.5. Questi NON sono gli stessi sul server IIS8. Anche la configurazione delle funzionalità potrebbe differire (mi sono assicurato che la mia fosse identica). Ci sono alcune nuove funzionalità in 8 che non esisteranno mai in 7.5.

Se sei abbastanza coraggioso da unire i due file, funzionerà. Ho dovuto disinstallare IIS una volta perché ho sbagliato, ma l'ho ottenuto la seconda volta.

Ho usato uno strumento di fusione (Beyond Compare) e senza qualcosa di equivalente sarebbe stato un enorme PITA, ma è stato abbastanza facile con un buon strumento di diff (cinque minuti).

Per eseguire l'unione, i file 8.0 devono essere diffusi rispetto ai file 7.5 esportati PRIMA di tentare l'importazione. Per la maggior parte, i file 8.0 devono sovrascrivere le cose specifiche del server nei file 7.5 esportati, lasciando le cose specifiche del sito / pool di app.

Ho scoperto che administration.config era quasi identico, senza le informazioni sulla versione di molte voci. Questo è stato facile.

ApplicationHost.config ha molte più differenze. Alcune voci sono ordinate in modo diverso, ma per il resto identiche, quindi dovrai scegliere ogni differenza e scoprirla.

Ho messo i miei file di esportazione 7.5 nella cartella System32 \ inetsrv \ config \ Export prima dell'unione.

Ho unito la cartella FROM System32 \ inetsrv \ config alla cartella System32 \ inetsrv \ config \ Export per entrambi i file che ho menzionato sopra. Ho spostato tutto nei file FROM tranne i tag / elementi specifici del sito (ad esempio applicationPools, customMetadata, siti, autenticazione). Di particolare nota, c'erano anche molti blocchi di tag di "posizione" specifici del sito che dovevo mantenere, ma il nuovo server aveva il suo blocco di tag di "posizione" con impostazioni predefinite specifiche del server che devono essere mantenute.

Infine, tieni presente che se utilizzi account di servizio, queste password memorizzate nella cache sono spazzatura e dovranno essere reinserite per i tuoi pool di app. Nessuno dei miei siti funzionava inizialmente, ma tutto ciò che era richiesto era reinserire le password per tutti i miei pool di app ed ero attivo e funzionante.

Se qualcuno che può commentare menziona questo post nel thread, probabilmente aiuterà qualcun altro come me che ha molti siti su un server con configurazioni complicate.

Saluti,

Stuart


In realtà ho usato la risposta di Stuart per una migrazione unita, ancora non mi piace MS Web Deploy.
mastica il

1

Nel mio caso, i file erano già stati copiati, ho trovato il modo più semplice per seguire i passaggi di questa guida: https://www.ryadel.com/en/exporting-importing-app-pools-and-websites-configuration-between -Multiple-iis-casi /

Ho esportato AppPools / siti web, copiato i file xml sul server di destinazione e importato AppPools quindi siti web. Ha funzionato molto bene. Questa è anche un'altra eccellente opzione per questa domanda.


questo mi ha dato solo errori che affermavano che il pool di app predefinito e il sito Web predefinito non potevano essere sovrascritti ... no bueno.
devlin carnate

Prova a rinominare i valori predefiniti in qualcos'altro? e vedere se vengono creati con il processo spiegato sopra?
Ralph

Questo ha funzionato per me passando da IIS7.5 (2008) a IIS10 (2019). Appcmd inizialmente mi ha dato errori su "Sito Web predefinito" già esistente. La ridenominazione non ha funzionato, quindi ho eliminato il sito Web predefinito. L'importazione è stata quindi eseguita senza errori.
MTAdmin
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.