Edición directa del archivo de configuración IIS 7 applicationHost.config

38

Sé que IIS 7+ ahora usa archivos de configuración XML en lugar de la metabase. También sé que si edito un archivo web.config para un sitio determinado, IIS detecta automáticamente los cambios e implementa los cambios de configuración correspondientes.

Sin embargo, ¿esto también se aplica al archivo de configuración applicationHost.config a nivel de servidor? (Generalmente se encuentra en C: \ windows \ system32 \ inetsrv \ config.) Específicamente, ¿es seguro editar cuidadosamente este archivo en lugar de usar el Administrador IIS o la utilidad de línea de comando appcmd? No pude encontrar nada en la documentación que dijera que estaba bien o no estaba bien hacer esto.

Tengo curiosidad porque tengo que cambiar los enlaces de numerosos sitios de una IP a otra. Sería mucho más rápido simplemente hacer una búsqueda global y reemplazar la dirección IP en el archivo de configuración en lugar de editar manualmente unas pocas docenas de sitios en la GUI.

lunadesign
fuente

Respuestas:

51

Compruebe también esta respuesta desde aquí: no se puede editar manualmente applicationhost.config

La respuesta es simple, si no tan obvia: win2008 es de 64 bits, notepad ++ es de 32 bits. Cuando navega a Windows \ System32 \ inetsrv \ config usando el explorador, está usando un programa de 64 bits para encontrar el archivo. Cuando abre el archivo usando notepad ++, está tratando de abrirlo usando un programa de 32 bits. La confusión ocurre porque, en lugar de decirle que esto es lo que está haciendo, Windows le permite abrir el archivo, pero cuando lo guarda, la ruta del archivo se asigna de forma transparente a Windows \ SysWOW64 \ inetsrv \ Config.

Entonces, en la práctica, lo que sucede es que abre applicationhost.config usando notepad ++, realiza un cambio, guarda el archivo; pero en lugar de sobrescribir el original, está guardando una copia de 32 bits en Windows \ SysWOW64 \ inetsrv \ Config, por lo tanto, no está realizando cambios en la versión que realmente utiliza IIS. Si navega a Windows \ SysWOW64 \ inetsrv \ Config, encontrará el archivo que acaba de guardar.

Cómo evitar esto? Simple: use un editor de texto de 64 bits, como el bloc de notas normal que se entrega con Windows.

Markive
fuente
77
Salvé mi tocino con este ... qué problema tan extraño que me hacía pensar que me estaba volviendo loco. ¡Gracias!
brettwgreen
Esto ya no parece ser un problema en Windows 10, por lo que fue terriblemente confuso cuando sucedía en nuestras máquinas con Windows 7 y Windows Server 2012.
Dzyann
Gracias, @Markive. Este es un tema muy confuso a primera vista.
Moby's Stunt Double
9

Específicamente, ¿es seguro editar cuidadosamente este archivo en lugar de usar el Administrador IIS o la utilidad de línea de comando appcmd?

¡Sí! Puede editar el archivo applicationhost.config directamente si es un administrador en la máquina; eso es todo lo que hacen las herramientas de administración también.

Si tiene problemas, al menos 20 minutos de copias de seguridad de la configuración se almacenan en \ inetpub \ history de forma predeterminada.

TristanK
fuente
¡Gracias! No sé por qué no documentan esto más.
lunadesign
3

Encontrará una buena introducción al archivo applicationHost.config en IIS.NET . También hay una referencia exhaustiva para todos los elementos en el esquema de configuración de IIS.

En realidad está bastante bien documentado :-)

Mathias R. Jessen
fuente
0

Otro bit útil que debe saber: cuando edite manualmente el archivo applicationHost.config (como lo hacen las herramientas), solo se reciclarán las aplicaciones para las que ha cambiado la configuración. IIS en realidad toma una instantánea de la configuración para cada aplicación y no la actualiza hasta que algo cambie para esa aplicación.

Peter
fuente
De acuerdo con stackoverflow.com/questions/8635884/… y los comentarios se necesita un reinicio completo.
yoel halb