El otro día creando una aplicación web en SharePoint se apagó mi máquina virtual de forma inesperada, mi sorpresa fue cuando quise volver a entrar a la administración central de SharePoint y entonces me di cuenta que ninguna aplicación web alojada en el IIS7 estaba disponible aparentemente el problema se debía a que el archive applicationHost.config había quedado corrupto, específicamente el error que me devolvía el IIS era “Configuration file is not well-formed XML”.
Afortunadamente el IIS guarda una copia de este archivo cada vez que intenta modificarlo, la copia se encuentra en C:\inetpub\history\ por lo que solo fue necesario tomar la última copia de respaldo y restaurarla en C:\Windows\System32\inetsrv\config\
Archivo de la etiqueta: IIS
Aumenta la seguridad de tus servidores web con UrlScan 3.1
UrlScan es una herramienta de seguridad que restringe los tipos de solicitudes HTTP que procesará nuestro servidor IIS. Al bloquear solicitudes HTTP específicas, la herramienta de seguridad URLScan 3.1 ayuda a prevenir que peticiones potencialmente perjudiciales lleguen a las aplicaciones en el servidor. UrlScan es compatible con IIS 5.1, IIS 6.0 e IIS 7.0 en Windows Vista y Windows Server 2008.
UrlScan realiza un filtrado de las solicitudes sobre la base de reglas que son establecidas por el administrador. El filtrado de peticiones ayuda a proteger el servidor, asegurando que sólo se procesan las solicitudes válidas.
Mitigar los ataques de inyección SQL
UrlScan se puede configurar para filtrar los valores del querystring y otras cabeceras HTTP para mitigar los ataques de inyección SQL.
Para descargar este complemento puede ir a este enlace de la pagina oficial del IIS.
Que pasa cuando detengo, inicio o reciclo un sitio web o los pool de aplicaciones en el IIS.
Deteniendo un sitio Web:
En el IIS 7 no se tiene la opción de pausar el sitio a web asi que lo único que podemos hacer es detenerlo con esto conseguimos que el sitio deje de escuchar a nuevos request , y para cualquiera que se quiera conectar al sitio web será como si este no existiera, aun asi las aplicaciones cargadas en los worker process que dan servicio al sito web permanecerán si ser afectados , esto nos da la oportunidad de evitar que nuestro sitio web reciba nuevas peticiones sin afectar el estado de las aplicaciones, por lo que al iniciar de nuevo el sitio web se continuara con el procesamiento de las peticiones que se estaban realizando.
> %windir%\system32\inetsrv\AppCmd Stop Site MySite
Deteniendo un pool de aplicaciones:
Con esto logramos que el iis de la orden de apagar todos los worker process que estaban sirviendo a las aplicaciones que trabajaban con ese pool esto impide por supuesto que se puedan iniciar nuevos worker process y que se pierda el estado de las aplicaciones hospedadas por dichos worker process .
A momento de apagarse los worker process estos deben de drenar todos los request que estuviesen manejando, por otro lado si después del tiempo limite configurado para el pool ( shutdownTimeLimit ) todos los woker process no se han apagado serán forzado a hacerlo.
Mientras el pool este detenido todas las peticiones que se hagan a las aplicaciones de dicho pool devolverán un error 503.
> %windir%\system32\inetsrv\AppCmd Stop Apppool MyAppPool
Arrancando un sitio web:
Con esto logramos que nuestro sitio web sea capaz de escuchar peticiones de nuevo y reanudar las aplicaciones que tenia cargadas en los worker process.
> %windir%\system32\inetsrv\AppCmd Start Site MySite
Arrancando el pool de aplicaciones:
Con esto logramos habilitar al iis para crear nuevos worker process a medida que se necesario.
> %windir%\system32\inetsrv\AppCmd Start Apppool MyAppPool
Reciclando el pool de aplicaciones:
Esto produce el apagado de todos los worker process en el pool pero permite la creación de nuevos worker process en función de los nuevos request que reciba la aplicación.
Comandos útiles en IIS utilizando AppCmd

Devuelve una lista de los Web sites en el servidor local
AppCmd list site
Agrega un nuevo Web site llamado TestSite01
AppCmd add site /name:TestSite01
Devuelve una lista con las peticiones actuales del servidor Web
AppCmd list request
Devuelve el contenido completo del archivo de configuración del servidor Web en formato XML
AppCmd list config
Crea un backup de la configuración del IIS
AppCmd add backup “BackupName”
Restaura un backup de la configuración del IIS
AppCmd restore backup “BackupName”
Devuelve una lista de los backup de configuración del IIS que han sido creados
AppCmd list backups

