7 messaggi dal 02 maggio 2007
Ciao a tutti,

sto avendo un problema nell'utilizzare OpenOffice in un Webform.
Sto usando OpenOffice 3.0.1 che fornisce delle dll: cli_*.dll le quali si occupano di effettuare il marshaling degli assembly COM di OpenOffice (se ho capito bene)

Abbiamo realizzato un assembly che referenzia tali dll e si occupa di interagire con OpenOffice Calc esponendo metodi di alto livello.


Referenziando questo assembly in un'applicazione Console siamo in grado di aprire un file .odf esistente, modificarlo e salvarlo.

Se lo stesso codice client viene inserito, per esempio, nell'event handler associato a un button_click di un webform si verifica un problema, probabilmente dovuto ai componenti COM.

Al click sul pulsante viene restituito un prompt di download che permette di scaricare il file appena generato sul server (salvato temporaneamente in un MemoryStream).
L'operazione riesce ma controllando l'event log di Windows XP professional si
nota un'eccezione che non si riesce a intercettare e che causa il riavvio del
worker process di ASP.Net. Di seguito riporto l'eccezione:

....
Application ID: DefaultDomain

Process ID: 5708

Exception: System.ArgumentException

Message: Cannot pass a GCHandle across appDomains
parameter Name:: handle

StackTrace: in System.Runtime.InteropServices.GCHandle.InternalCheckDomain(IntPtr handle)
in System.Runtime.InteropServices.GCHandle.FromIntPtr(IntPtr value)
in System.Runtime.InteropServices.GCHandle.op_Explicit(IntPtr value)
in gcroot<System::String ^>..P$AAVString@System@@(gcroot<System::String ^>* )
in cli_uno.CliProxy.{dtor}(CliProxy* )
in cli_proxy_free(_uno_ExtEnvironment* __unnamed000, Void* proxy)
in cli_uno.CliProxy.release(CliProxy* )
in cli_proxy_release(_uno_Interface* pUnoI)

Sul forum di OpenOffice non ho ricevuto risposta né ho trovato soluzioni a domande analoghe poste in passato.

Per caso qualcuno mi sa spiegare quale può essere la causa (tenendo conto che non sto registrando event handler in attesa di eventi segnalati da OpenOffice).

Ringrazio chiunque mi possa essere di aiuto,

Matteo Tontini

P.S.

se necessario posso postare il codice con cui effettuiamo le chiamate a OpenOffice

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.