In onze (windows) applicatie maken we gebruik van Word automation. Hierbij creëren we een instantie van de Word application class middels de Office 2003 interop DLLs, waarna we bewerkingen op verschillende Word templates gaan uitvoeren. Dit alles geschied in een thread en werkt als een zonnetje.
ECHTER....
De applicatie wordt gehost in een Citrix omgeving waarvoor Office sinds kort ge-upgrade is naar Office 2003, om die reden zijn de Office interops in onze applicatie ook ge-upgrade naar Office 2003 en hebben we voor deze gelegenheid ook maar de applicatie omgezet naar .NET 3.5.
Wanneer we nu Word automation gaan gebruiken kan* dit leiden tot de standaard "application generated an error and needs to close" exception. In veel gevallen gaat het echter ook gewoon goed. Na wat zoeken is de oorzaak hiervan één van de volgende COM excepties:
* Kan betekent in dit geval twee scenario's: of de fout treedt meteen bij het creëren van de instantie van de Word application class op of na het starten van verschillende threads die ieder weer een instantie creëren van de Word application class (maw: wanneer de gebruiker verschillende keren op de knop ramt).
Na een flink aantal uren googlen heb ik een interessante thread gevonden die het probleem kan oplossen (zie: http://social.msdn.micros...df-475d-a339-b4feb668a0bd). Echter, dit kunnen we niet testen aangezien de Office 2003 installatie onderdeel is van de Citrix omgeving en door ons simpele ontwikkelaars niet te beïnvloeden is.
Nu moeten we dus iemand inschakelen om te bepalen of de Office 2003 installatie corrupt is, maar aangezien het niet eenduidig te reproduceren is (de ene gebruiker krijgt de fout meestal meteen de eerste keer, de andere gebruiker pas na een aantal keer starten van een thread, en bij weer andere gebruikers gaat het gewoon goed) weten we niet zeker of het hieraan ligt. Lokaal (lees: buiten de Citrix omgeving) op onze ontwikkel pc's werkt het uiteraard allemaal goed, ook wanneer er meerdere threads gestart worden.
Het doel van dit topic is om wat feedback van de Tweakers community te krijgen die hopelijk eerder met dit probleem te maken hebben gehad en wellicht een passende oplossing weten.
ECHTER....
De applicatie wordt gehost in een Citrix omgeving waarvoor Office sinds kort ge-upgrade is naar Office 2003, om die reden zijn de Office interops in onze applicatie ook ge-upgrade naar Office 2003 en hebben we voor deze gelegenheid ook maar de applicatie omgezet naar .NET 3.5.
Wanneer we nu Word automation gaan gebruiken kan* dit leiden tot de standaard "application generated an error and needs to close" exception. In veel gevallen gaat het echter ook gewoon goed. Na wat zoeken is de oorzaak hiervan één van de volgende COM excepties:
code:
1
2
3
4
5
| Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 8000ffff. (Catastrophic failure) Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80040154 (iets met registratie van interops) |
* Kan betekent in dit geval twee scenario's: of de fout treedt meteen bij het creëren van de instantie van de Word application class op of na het starten van verschillende threads die ieder weer een instantie creëren van de Word application class (maw: wanneer de gebruiker verschillende keren op de knop ramt).
Na een flink aantal uren googlen heb ik een interessante thread gevonden die het probleem kan oplossen (zie: http://social.msdn.micros...df-475d-a339-b4feb668a0bd). Echter, dit kunnen we niet testen aangezien de Office 2003 installatie onderdeel is van de Citrix omgeving en door ons simpele ontwikkelaars niet te beïnvloeden is.
Nu moeten we dus iemand inschakelen om te bepalen of de Office 2003 installatie corrupt is, maar aangezien het niet eenduidig te reproduceren is (de ene gebruiker krijgt de fout meestal meteen de eerste keer, de andere gebruiker pas na een aantal keer starten van een thread, en bij weer andere gebruikers gaat het gewoon goed) weten we niet zeker of het hieraan ligt. Lokaal (lees: buiten de Citrix omgeving) op onze ontwikkel pc's werkt het uiteraard allemaal goed, ook wanneer er meerdere threads gestart worden.
Het doel van dit topic is om wat feedback van de Tweakers community te krijgen die hopelijk eerder met dit probleem te maken hebben gehad en wellicht een passende oplossing weten.