Editando diretamente o arquivo de configuração applicationHost.config do IIS 7

38

Eu sei que o IIS 7 ou superior agora usa arquivos de configuração XML em vez da metabase. Também sei que, se eu editar um arquivo web.config para um determinado site, o IIS detectará automaticamente as alterações e implementará as alterações de configuração correspondentes.

No entanto, isso também se aplica ao arquivo de configurações applicationHost.config no nível do servidor? (Geralmente, está localizado em C: \ windows \ system32 \ inetsrv \ config.) Especificamente, é seguro editar cuidadosamente esse arquivo em vez de usar o Gerenciador do IIS ou o utilitário de linha de comando appcmd? Não consegui encontrar nada na documentação que afirmasse que estava tudo bem ou não.

Estou curioso porque tenho que alterar as ligações de vários sites de um IP para outro. Seria muito mais rápido simplesmente fazer uma pesquisa global e substituir o endereço IP no arquivo de configuração, em vez de editar manualmente algumas dezenas de sites na GUI.

lunadesign
fonte

Respostas:

51

Verifique também esta resposta a partir daqui: Não é possível editar manualmente applicationhost.config

A resposta é simples, se não tão óbvia: o win2008 é de 64 bits, o bloco de notas ++ é de 32 bits. Quando você navega para Windows \ System32 \ inetsrv \ config usando o explorer, está usando um programa de 64 bits para encontrar o arquivo. Quando você abre o arquivo usando o bloco de notas ++, está tentando abri-lo usando um programa de 32 bits. A confusão ocorre porque, em vez de lhe dizer que é isso que você está fazendo, o Windows permite abrir o arquivo, mas quando você o salva, o caminho do arquivo é mapeado de forma transparente para Windows \ SysWOW64 \ inetsrv \ Config.

Portanto, na prática, o que acontece é abrir o applicationhost.config usando o notepad ++, fazer uma alteração, salvar o arquivo; mas, em vez de sobrescrever o original, você está salvando uma cópia de 32 bits no Windows \ SysWOW64 \ inetsrv \ Config, portanto, você não está fazendo alterações na versão realmente usada pelo IIS. Se você navegar para Windows \ SysWOW64 \ inetsrv \ Config, encontrará o arquivo que você acabou de salvar.

Como contornar isso? Simples - use um editor de texto de 64 bits, como o bloco de notas normal que acompanha o Windows.

Markive
fonte
7
Guardei meu bacon com este ... que problema estranho que estava me fazendo pensar que estava ficando louco. Obrigado!
precisa saber é o seguinte
Isso não parece mais ser um problema no Windows 10, por isso foi terrivelmente confuso quando estava acontecendo em nossas máquinas Windows 7 e Windows Server 2012.
Dzyann
Obrigado, @ Markive. Esta é uma questão muito confusa à primeira vista.
Moby's Stunt Double
9

Especificamente, é seguro editar cuidadosamente esse arquivo em vez de usar o Gerenciador do IIS ou o utilitário de linha de comando appcmd?

Sim! Você pode editar o arquivo applicationhost.config diretamente se for um administrador na máquina; isso é tudo o que as ferramentas administrativas também fazem.

Se você tiver problemas, pelo menos 20 minutos de backups de configuração são armazenados no \ inetpub \ history por padrão.

TristanK
fonte
Obrigado! Não sei por que eles não documentam isso mais.
Lunadesign 17/11
3

Você encontrará uma boa introdução ao arquivo applicationHost.config no IIS.NET . Há também uma referência completa para todos os elementos no esquema de configuração do IIS.

Na verdade, é bem documentado :-)

Mathias R. Jessen
fonte
0

Outra informação útil a saber: quando você edita manualmente o arquivo applicationHost.config (como as ferramentas), apenas os aplicativos para os quais você alterou a configuração serão reciclados. Na verdade, o IIS tira um instantâneo da configuração de cada aplicativo e não o atualiza até que algo mude para esse aplicativo.

Pedro
fonte
De acordo com stackoverflow.com/questions/8635884/… e os comentários, é necessária uma reinicialização completa.
halb yoel