Ultimamente mi è capitato un problema a runtime durante l’utilizzo di un’applicazione .NET che accedeva ad Office (più in particolare a PowerPoint).
L’applicazione genera, server side, un file PowerPoint. Tuttavia il processo si blocca durante l’invocazione di PowerPoint con un errore poco parlante (“PowerPoint could not open the file“), nonostante il file PowerPoint da utilizzare come base di partenza sia effettivamente presente nella directory indicata nel source code:
System.Runtime.InteropServices.COMException (0x80004005): PowerPoint could not open the file. at Microsoft.Office.Interop.PowerPoint.Presentations.Open(String FileName, MsoTriState ReadOnly, MsoTriState Untitled, MsoTriState WithWindow) at
Dopo un po’ di ricerca, per risolvere questo problema si deve creare una directory vuota (provare per credere) in questa posizione, in base al sistema operativo su cui gira IIS:
Windows 2008 Server x64 - C:\Windows\SysWOW64\config\systemprofile\Desktop
Windows 2008 Server x86 - C:\Windows\System32\config\systemprofile\Desktop
Riavviate IIS, e non otterrete più l’errore indicato.