martes, noviembre 09, 2004

Componentes que no debe de usarse en IIS

Llevo un tiempo buscando un problema con un IIS que decidia colgarse cada dos o tres días, sin dejar rastro alguno. Lo peor es que no había una traza clara de la causa que lo producía. Los volcados que había recogido hasta entonces (con utilidades como adplus) no llegaban a nada claro.

Para poder buscar el fallo de manera más sencilla:

  • Desactiva el FailFast de COM. Con esto conseguimos que en caso de casque de un componente, la excepción sea atrapada por el debugger.
  • Aislar la web que falla. Esto hace que se ejecute como un proceso independiente al cual podemos conectarnos con el debugger.
  • Desactivar el Enable Debug Excepcion Caching en las propiedades del sitio del CMS.

Tras efectuar estos pasos, resulta que todo acaba en una violación general de protección, porque a una función, WaitForMultipleObjects, se está pasando handles inválidos. Hasta aquí no dice mucho. Sin embargo, si se observa una traza de pila y los módulos cargados por el IIS en dicho proceso, me encuentro con un viejo y problemático conocido: wininet.

Este módulo nunca debe de ser cargado por el IIS. Simplemente no está soportado. De ahí a llegar al módulo que lo estaba usando fue relativamente fácil, puesto que en las trazas de pela que tenía hacia referencia a un software que usaba: el proveedor de OLE DB para Sharepoint o Exchange, msdaipp, el cual se utiliza para acceder a funcionalidades Webdav.

lunes, octubre 18, 2004

Servicios de red en Windows

Hasta la versión de Windows 2003 los sistemas operativos de Microsoft han venido con multitud de servicios activados, alguno de los cuales no son muy conocidos, y con un historial de seguridad que ha dejado bastante que desear - en especial en aquellos servicios dependientes de de las RPC - . En la lista de full-disclosure he encontrado un estupendo artículo que habla de las interioridades de los servicios de Windows, una interesante lectura para comprender su funcionamiento.

lunes, octubre 11, 2004

Multimedia Research Institute

Mike Melanson mantiene una interesante página sobre multimedia: protocolos de red, formatos de audio y video, codecs. Tenemos de desde lo más más basico, siguiendo por los formatos de ficheros, quizás lo que a mi más me interesa. Llevo un tiempo pensando en desarrolalr una pequeña extension para la shell de Windows que me permita saber el CODEC de audio y video que hay dentro de un .avi o cualquier otro formato contenedor.

Collations en el SQL Server

Hoy me he encontrado contrado con un desagradable problema con un SQL Server 2000 y un Microsoft MSCMS. Al recuperar un backup de una base de datos con un collation determinado, en otro servidor que estaba instalado con uno diferente, el CMS ha dejado de funcionar al cambiar a la nueva base de datos, puesto que era incapaz de realizar comparaciones debido al cambio de collactions. Existe un artículo en la KB de Microsoft que habla sobre los problemas de transferencia de bases de datos.

martes, octubre 05, 2004

¿Es el directorio activo realmente distribuido?

Una de las ventajas que supuestamente tenía el directorio activo - implementado a partir de Windows 2000 - es que es un servicio distribuido, y que la falla de uno de los controladores de dominio que lo apoyan, harían que el resto de los controladores asumieran el rol de aquel que ha fallado.

Sin embargo esto no es así: existe una serie de roles que están soportados por un único controlador de dominio, a saber, schema master, domain name master, pdc emulator, rid master y infraestructure master. Estos roles no se traspasan automáticamente a otro controlador cuando el aquel que lo tenía falla por cualquier circunstancia.

En los diferentes libros y cursos de Microsoft sobre el directorio activo hacen una advertencia: Tener a mano la diferentes utilidades que permiten una recuperación del directorio activo...