miércoles, 12 de diciembre de 2012

Usar un fichero Excel desde un servicio de Windows


Si intentas manejar un fichero Excel con las librerías de interoperalilidad desde un servicio de Windows desarrollado en .Net, te encontrarás con una Excepción poco esclarecedora: "Microsoft Office Excel cannot access the file".

El problema se debe a que un servicio de Windows, independientemente del usuario de ejecución que se configure, se ejecuta en un perfil especial, el systemprofile. Este perfil no tiene una carpeta de escritorio, sin embargo la librería de interoperabilidad de Excel, para modificar un documento Excel, lo intenta abrir en segundo plano en el escritorio. Al no existir la ruta, se provoca esta excepción.

Por tanto, en el momento de la instalación es necesario crear la carpeta de escritorio (Desktop) en función de la arquitectura del servidor:


  • Servidor de 32bits: %WINDIR%\System32\config\systemprofile\Desktop
  • Servidor de 64bits: %WINDIR%\SysWOW64\config\systemprofile\Desktop


No hay comentarios:

Publicar un comentario