24 sept 2011

Solución 8 - Excel 2007 API en Windows Server 2008 x64

Una vez creada y publicada la aplicación que usa la API Excel 2007 en Windows Server 2008 x64, puede lanzaros este error al intentar abrir un xlsx con la función Open() de la API :

Microsoft Office Excel cannot access the file 'c:\temp\test.xls'. There are several possible reasons:
• The file name or path does not exist.
• The file is being used by another program.
• The workbook you are trying to save has the same name as a currently open workbook.


Por mágica que parezca la solución, está reside en crear una nueva carpeta llamada Desktop en C:\Windows\SysWOW64\config\systemprofile\, quedando de esta manera: 

C:\Windows\SysWOW64\config\systemprofile\Desktop

Hay que dar permisos "Control Total" a esta carpeta de la aplicación del IIS (AppPool) de la aplicación web que usa la API Excel 2007. Debe utilizar internamente esta carpeta de forma temporal para realizar la lectura del xlsx.

Aquí tenéis parte de dónde encontré la solución, que nos dice que la creación de la carpeta varia dependiendo la versión del servidor:

...

This solution is ...
・Windows 2008 Server x64

  Please make this folder.

  C:\Windows\SysWOW64\config\systemprofile\Desktop
・Windows 2008 Server x86
  Please make this folder.
  C:\Windows\System32\config\systemprofile\Desktop
  ...instead of dcomcnfg.exe.

...

No hay comentarios: