IIS 6 puede dejar de responder después de instalar la actualización KB 973917

por Ivanov Cepeda

Hace unos pocos días hemos empezado a notar un nuevo síntoma que está apareciendo con más y más frecuencia en servidores con IIS 6, a continuación se detalla los síntomas:

Usted se encuentra ejecutando Windows 2003 Server y tiene IIS 6.0 instalado y alojando sus sitios web. El sistema operativo le alerta que debe instalar la actualización KB 973917.

  • Los Application pools o los websites no inician nuevamente.
  • Los sitios web de IIS pueden no iniciar.
  • La protección habilitada por la opción “Rapid fail protection” puede deshabilitar los Application Pools

¿Qué es lo que está sucediendo?

No todas las instalaciones de IIS ejecutándose en un servidor Windows 2003 se ven impactadas por esta actualización. USTED PUEDE INSTALAR ESTA ACTUALIZACION y continuar utilizando IIS 6.0 normalmente. El único caso en el que puede ocurrir este error es el siguiente:

Usted instalo Windows 2003 y usted no instalo IIS 6.0 al momento de instalar el sistema operativo. Posteriormente usted instalo el Service Pack 1 o el Service Pack 2 de Windows 2003 directamente y despues de instalar correctamente cualquiera de los Service Pack usted decidió instalar IIS 6.0. Cuando se encontraba instalando IIS 6.0 le fueron solicitados los discos originales del sistema operativo (no los discos del Service Pack 1 o del Service pack 2).

Si usted siguió el escenario anteriormente descrito, usted pudo haber terminado con lo que es llamado un “binary mismatch” o una incongruencia de librerías entre las librerías del sistema operativo y las librerías pertenecientes a IIS. En otras palabras los archivos del sistema operativo Windows 2003 pertenecen a las versiones del Service Pack 2 mientras que los archivos de IIS 6.0 pertenecen a las versiones del Service Pack 1 o RTM del sistema operativo.

¿Cómo se puede Verificar si usted se encuentra en este escenario?

En una ventana de comandos de Windows 2003, ejecute el siguiente comando:

C:\>winver

Esto le mostrara la versión de Windows 2003 que usted está ejecutando y que nivel de actualizaciones tiene. Usted debería ver que el sistema operativo esta actualizado a la versión del Service Pack 2. De no ser así, usted debe considerar seriamente la posibilidad de actualizar a la versión 2 del Service Pack ya que la versión 1 de Service pack ya no es soportada.

Si usted está ejecutando la versión de Windows 2003 con Service Pack 2 instalado, proceda a verificar la versión de uno de los archivos de IIS 6.0. Una de las librerías fáciles de ubicar es iisutil.dll, la cual está ubicada en el directorio %windir%\system32\inetsrv. Una vez encontrada la librería proceda a ver las propiedades del archivo para ver la información de la versión del archivo. Si usted tiene una versión que contiene un 0 después del último punto decimal o una versión con un número menor a 3000 después del último punto decimal, usted tiene un “binary mismatch”. La versión actual del archivo debe ser la siguiente:

6.0.3790.3959

¿Por qué se produce este problema?

La última actualización que viene en el KB 973917 trae una nueva versión de la librería w3core.dll. Esta nueva versión del archivo intentara llamar una API localizada en iisutil.dll. Esta API que está siendo llamada solamente podrá ser encontrada en la librería iisutil.dll que se instala con la versión 2 del Service pack de Windows 2003. SI usted instalo IIS 6.0 después de haber instalado el Service Pack 2 de Windows 2003 es muy posible que usted caiga en este problema.

Solución:

Si usted se encuentra en esta situación, y solamente después de haber confirmado los síntomas como se indicó en este artículo anteriormente, usted debe proceder a reinstalar el Service Pack 2 de Windows 2003 Server el cual puede encontrar en el siguiente enlace:

https://www.microsoft.com/downloads/details.aspx?FamilyId=95AC1610-C232-4644-B828-C55EEC605D55&displaylang=en

Usted no necesita desinstalar e instalar nuevamente el Service Pack 2 de Windows 2003. Tan solo reinstale el Service Pack 2 y esto instalara la versión adecuada de la librería iisutil.dll lo que eliminará el problema.