Excel, ASP.net y Windows Server 2008

Hace unos días añadimos una nueva funcionalidad a una aplicación departamental programada con ASP.net MVC para que crease unos informes y los sacase en un documento de Microsoft Excel 2010 para poder ser tratados más tarde.

En el equipo de desarrollo todo iba como la seda, se parametrizaban los datos a sacar y al ejecutar el informe nos devolvía sin ningún problema el fichero de Excel y podíamos abrirlo. Cuando hicimos el paso a producción vino nuestro quebradero de cabeza, primero fue que office 2010 se negó a instalarse a la primera, lo solucionamos pero cuando la aplicación empezó a usarse y a sacar los primeros informes… FALLO!

Para ser exactos nos daba un bonito error “[UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005.

Era un bonito error de COM y buscando por el ancho y largo internet encontré multitud de páginas donde daban soluciones, desde que no se usase office en un Windows Server 2008 hasta “hacks” del registro de Windows. Después de leer multitud de páginas y páginas con todo tipo de soluciones y observar que el problema es que por defecto Microsoft Excel como objeto COM solo puede activarse por las cuentas: Administrador, System e Interactive, me decidí por cambiar los permisos del objeto COM de Microsoft Excel en el servidor tal y como explican en  http://blog.crowe.co.nz/archive/2006/03/02/589.aspx en ella lo explica para Windows XP y Windows Server 2003, pero sirve también para Windows Server 2008.

Pero al intentar ejecutar la solución…. ERROR! no aparecía por ningún sitio el objeto COM “Microsoft Excel Applications” y por mas que le daba vueltas no había forma de ver como poder solucionar esto, pensamos que lo mismo no estarían instalados los “Primary Interop Assemblies” de Office 2010 por alguna rara razón y los instalamos de nuevo, reiniciamos un montón de veces el servidor, lo actualizamos todo lo actualizable y nada de nada, hasta que se nos ocurrió ejecutar la Microsoft Management Console en modo 32 bits haciendo un “mmc.exe -32″ y añadiendo el complemento de COM y FUNCIONÓ todo.

La verdad que nos ha tenido un par de mañanas muy atareados para que al final fuese una “tontería”.

También te podría gustar...