Windows 2008 Server + Office 2007 = InteropServices.COMException (0x800A03EC): Microsoft Office Excel cannot access the file
Mi-am prins astazi urechile cu urmatoarea eroare:
Am incercat sa i-au pe rand diferite cauze la aceasta problema. Am verificat daca nu cumva excel-ul este deja deschis de un alt proces. Fisierul nostru nu era deschis de nici un alt proces. Path-ul spre fisier era corect, nu era nici o problema de drepturi de acces pe fisierul dat.
Cautand o posibila cauza am gasit o cauza destul de ciudata, care in cazul meu se pare ca a rezolvat si problema. Pe sistemele WIndows 2008 Server, nu se ai creaza automat un folder de care are nevoie COM-ul de Office pentru a deschide un fisier.
Pentru Windows 2008 Server x86 este nevoie sa creati urmatorul folder:
Din cate am investigat pana acuma aceasta problema apare doar pe Windows 2008 in combinatie cu Office 2007. Pentru noi aceasta solutie ne-a rezolvat problema :-)
InteropServices.COMException (0x800A03EC): Microsoft Office Excel cannot access the file
Aceasta eroare era ascunsa in spatele unei erori de tip NullReferenceException. Eroare aparea pe linia de cod car facea open la un excel.myBooks.Open(fileName, 0, true, missing, missing, missing, true, missing, missing, missing, missing, missing, missing, missing. missing);
Ce era cel mai curios ca acest lucru se intampla doar in productie, pe un Windows Server 2008 pe 64b (x64). Aceasta problema nu aparea pe nici o masina de dezvoltare cu Windows 7, nici pe build machine sau pe masina de testare.Am incercat sa i-au pe rand diferite cauze la aceasta problema. Am verificat daca nu cumva excel-ul este deja deschis de un alt proces. Fisierul nostru nu era deschis de nici un alt proces. Path-ul spre fisier era corect, nu era nici o problema de drepturi de acces pe fisierul dat.
Cautand o posibila cauza am gasit o cauza destul de ciudata, care in cazul meu se pare ca a rezolvat si problema. Pe sistemele WIndows 2008 Server, nu se ai creaza automat un folder de care are nevoie COM-ul de Office pentru a deschide un fisier.
Pentru Windows 2008 Server x86 este nevoie sa creati urmatorul folder:
C:\Windows\System32\config\systemprofile\Desktop
, iar pentru Windows 2008 Server x64:C:\Windows\SysWOW64\config\systemprofile\Desktop
Nu intrebati de ce am avut nevoie de a procesa pe server fisiere Excel, stiu ca nu este recomandat, dar aceasta era o cerinta care ne-a venit.Din cate am investigat pana acuma aceasta problema apare doar pe Windows 2008 in combinatie cu Office 2007. Pentru noi aceasta solutie ne-a rezolvat problema :-)
Comments
Post a Comment