Como você migra um site IIS 7 para outro servidor?

105

Estou me perguntando qual é a prática recomendada para mover um site para outro servidor (junto com todas as configurações, etc.)

  • Recrie manualmente o site no novo servidor (não pode ser mantido por razões óbvias)
  • Copie o arquivo de configurações applicationHost.config
  • Use appcmd para fazer backup e restauração
  • Use o MSDeploy para publicar o site na nova máquina
  • Use uma ferramenta de terceiros

Apenas me perguntando quais foram as experiências dos outros.

Kalid
fonte
A Microsoft recomenda apenas o Web Deploy (após a criação desta ferramenta), portanto, antes de ler as respostas a seguir, certifique-se de que está sob seu próprio risco.
Lex Li

Respostas:

134

Eu diria que exporte a configuração do seu servidor no gerenciador IIS:

  1. No gerenciador IIS, clique no nó Servidor
  2. Vá para Configuração Compartilhada em "Gerenciamento"
  3. Clique em “Exportar configuração”. (Você pode usar uma senha se estiver enviando-os pela Internet, se for apenas movê-los por meio de uma chave USB, não se preocupe.)
  4. Mova esses arquivos para o seu novo servidor

    administration.config
    applicationHost.config
    configEncKey.key 
    
  5. No novo servidor, volte para a seção “Configuração compartilhada” e marque “Habilitar configuração compartilhada”. Insira o local no caminho físico para esses arquivos e aplique-os.

  6. Ele deve solicitar a senha de criptografia (se você configurá-la) e redefinir o IIS.

BAM! Vá tomar uma cerveja!

mastiga
fonte
8
Provavelmente deveria usar o Import Server ou Site Package em vez de apenas copiar os arquivos, embora eu não tenha testado isso também. Mas eu sei que existem caminhos de arquivo no applicationHost.config que não estarão necessariamente presentes no novo servidor, o que faria com que ele quebrasse. Além disso, você provavelmente deve mencionar que não pode haver NENHUM site atualmente no IIS, portanto, esse processo não altera a configuração em execução no momento.
frogstarr78
16
A última etapa não pode ser superestimada. Criticamente importante.
Rap
7
Não é uma boa ideia se você estiver migrando para uma versão mais recente do IIS. Do contrário, é assim que se faz.
Roy Tinker
1
Gostaria de saber se isso poderia funcionar, porque não deveria: docs.microsoft.com/en-us/iis/manage/…
vaso123
1
A configuração compartilhada do IIS não foi projetada como uma forma de migrar as configurações entre as máquinas, portanto, se você tiver qualquer problema após esta resposta, morda-se e não culpe ninguém.
Lex Li
25

MSDeploy pode migrar todo o conteúdo, configuração, etc. que é o que a equipe do IIS recomenda. http://www.iis.net/extensions/WebDeploymentTool

Para criar um pacote, execute o seguinte comando (substitua o Site Padrão pelo nome do seu site):

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

Para restaurar o pacote, execute o seguinte comando:

msdeploy.exe -verb:sync -source:package=c:\dws.zip -dest:apphostconfig="Default Web Site" > DWSpackage7.log
Bill Staples
fonte
1
Obrigado Bill - Eu tinha visto a ferramenta, mas estava desconfiado porque ela ainda estava em Beta.
Kalid
1
Em 2016, isso ainda é o 'estado da arte', mas o MSDEPLOY 3.6 é realmente difícil de trabalhar. Espero que eles façam algo novo em algum momento.
Warren P de
O MSDeploy não transferiu sites corretamente para nós. Acabamos com um site contendo aplicativos de cada um dos nossos sites, então toda a estrutura estava errada.
brianary
Certamente é a maneira recomendada e documentação como docs.microsoft.com/en-us/iis/publish/using-web-deploy/… e docs.microsoft.com/en-us/iis/publish/using-web- implantar / ... são essenciais para os usuários dominarem as etapas necessárias e os pontos-chave aos quais eles precisam prestar atenção. A maioria das questões na internet já são respondidas nos artigos. Se as pessoas gastam tempo suficiente nisso, o Web Deploy não é uma ferramenta "difícil" de usar.
Lex Li
18

Aqui está um site útil sobre como usar appcmd para exportar / importar uma configuração de site. http://www.microsoftpro.nl/2011/01/27/exporting-and-importing-sites-and-app-pools-from-iis-7-and-7-5/

Roy
fonte
Obrigado pelo link. Isso também me permitiu modificar a ID do site e qualquer outra coisa, e não precisei configurar 10 aplicativos diferentes e 30 diretórios virtuais diferentes. Grande economia de tempo
2GDave
Como essa abordagem não cuida das dependências subjacentes (módulos IIS e assim por diante), use-a por sua própria conta e risco.
Lex Li
12

O Microsoft Web Deploy v3 pode exportar e importar todos os seus arquivos, configurações, etc. Ele coloca tudo em um arquivo zip pronto para importar no novo servidor. Ele pode até mesmo atualizar para versões mais recentes do IIS (v7-v8).

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

Depois de instalar a ferramenta: Clique com o botão direito no seu servidor ou site no Console de Gerenciamento IIS, selecione 'Implementar', 'Exportar Aplicativo ...' e execute a exportação.

No novo servidor, importe o arquivo zip exportado da mesma maneira.

Zymotik
fonte
mas leva todos os arquivos. existe uma maneira de pular a obtenção dos arquivos? se você, por exemplo, migrar um servidor FTP, ele tentará coletar todos os arquivos e compactá-los.
RayofCommand
2
@RayofCommand - Ao selecionar as opções de implantação, você pode limpar a lista "Conteúdo" - então o pacote não inclui todos os arquivos.
Zhaph - Ben Duguid
1
Mas apenas ao implantar site por site ... não para uma mudança de servidor inteira.
Ethan Allen de
1
Depois de instalar o MS Web Deploy no servidor de destino (IIS8), o console de gerenciamento IIS não contém nenhuma das opções do Web Deploy.
brianary
1
Eu também não tenho o menu "Implementar" após instalar o pacote.
Advogado do Diabo
3

use appcmd para exportar um ou todos os sites e reimporte para o novo servidor. Pode ser iis7.0 ou 7.5. Quando você exporta usando appcmd, as senhas são descriptografadas, reimportadas e criptografadas novamente.

Jim
fonte
3

Não posso comentar o tópico devido à falta de representante. Outro comentarista afirmou que não poderia migrar de uma versão inferior para uma versão superior do IIS. Isso é verdade se você não mesclar alguns arquivos, mas se você fizer isso, porque acabei de migrar meu site do IIS 7.5 para o IIS 8.0 usando a resposta postada por chews.

Quando a exportação é criada (II7.5), há dois arquivos principais (admin.config e applicationHost.config) que têm referências a recursos no servidor IIS7.5. Por exemplo, uma DLL será referenciada com uma chave pública e uma versão específica para 7.5. Eles NÃO são iguais no servidor IIS8. A configuração do recurso também pode ser diferente (garanti que os meus eram idênticos). Existem alguns novos recursos no 8 que nunca existirão no 7.5.

Se você for corajoso o suficiente para mesclar os dois arquivos - funcionará. Tive que desinstalar o IIS uma vez porque estraguei tudo, mas consegui na segunda vez.

Eu usei uma ferramenta de fusão (Beyond Compare) e sem algo equivalente seria um PITA enorme - mas foi bem fácil com uma boa ferramenta de comparação (cinco minutos).

Para fazer a fusão, os arquivos 8.0 precisam ser comparados com os arquivos 7.5 exportados ANTES de tentar a importação. Na maior parte, os arquivos 8.0 precisam sobrescrever as coisas específicas do servidor nos arquivos 7.5 exportados, enquanto deixam as coisas específicas do pool de sites / aplicativos.

Descobri que o Administration.config era quase idêntico, sem as informações de versão de muitas entradas. Este foi fácil.

O applicationHost.config tem muito mais diferenças. Algumas entradas são ordenadas de forma diferente, mas de outra forma idênticas, então você terá que selecionar cada diferença e descobrir.

Coloquei meus arquivos de exportação do 7.5 na pasta System32 \ inetsrv \ config \ Export antes de mesclar.

Eu mesclei a pasta FROM System32 \ inetsrv \ config para a pasta System32 \ inetsrv \ config \ Export para os dois arquivos que mencionei acima. Eu empurrei tudo nos arquivos FROM, exceto tags / elementos específicos do site (por exemplo, applicationPools, customMetadata, sites, autenticação). De nota especial, havia também muitos blocos de tag de "localização" específicos do site que eu tive que manter, mas o novo servidor tinha seu próprio bloco de tag de "localização" com padrões específicos do servidor que devem ser mantidos.

Por último, observe que, se você usar contas de serviço, essas senhas em cache são lixo e terão que ser reinseridas em seus pools de aplicativos. Nenhum dos meus sites funcionou inicialmente, mas tudo o que era necessário era inserir novamente as senhas para todos os meus pools de aplicativos e eu estava pronto e funcionando.

Se alguém que pode comentar mencionar este tópico de postagem - provavelmente ajudará alguém como eu, que tem muitos sites em um servidor com configurações complicadas.

Saudações,

Stuart

Stuart
fonte
Na verdade, usei a resposta de Stuart para uma migração mesclada, ainda não gosto do MS Web Deploy.
mastiga
1

No meu caso, os arquivos já foram copiados, achei a maneira mais fácil de seguir as etapas deste guia: https://www.ryadel.com/en/exporting-importing-app-pools-and-websites-configuration-between -multiple-iis-instances /

Exportei AppPools / Websites, copiei os arquivos xml para o servidor de destino e importei AppPools e Websites. Funcionou muito bem. Esta também é outra excelente opção para esta questão.

Ralph
fonte
isso só me deu erros informando que o pool de aplicativos padrão e o site da Web padrão não podiam ser sobrescritos ... no bueno.
devlin carnate
Tentar renomear os padrões para outra coisa? e ver se eles são criados com o processo explicado acima?
Ralph
Isso funcionou para mim indo do IIS7.5 (2008) para o IIS10 (2019). O Appcmd inicialmente me deu erros em 'Site padrão' já existente. Renomear não funcionou, então excluí o site padrão. A importação então foi executada sem erros.
MTAdmin