
Al di là del fatto che Microsoft sconsigli al'uso di questa tecnica, ci sono comunque una serie di problemi legati a diritti e autorizzazioni per utilizzare queste funzionalità sul server.
Uno dei principali limiti che c'è nell'uso della soluzione proposta nei precedenti articoli, sta nel fatto che gli applicativi sono strutturati per un utilizzo interattivo e quindi necessitano di un utente che sia loggato sul server.
Inoltre utilizzando COM Interop direttamente da ASP.net, le chiamate vengo effettuate dal'ASP.NET-User (network service) al quale non è consentito di interagire con word.
Per evitare tutti questi problemi, la soluzione più comoda è quella di effettuare le chiamate alla libreria Interop di office utilizzando un programma stand alone che risiede sul server. Ovviamente questo significa avere una sessione aperta sul server, con un utente loggato che faccia girare questo programma.
Questa piccola applicazione pubblica semplicemente dei servizi di conversione file utilizzando la tecnica del Remoting .
La classe RemoteConverter contenente i metodi di conversione, implementa l'interfaccia MarshalByRefObject:

mentre l'applicazione desktop registra ed utilizza questi metodi:

Una volta lanciata l'applicasione desktop sul server, la nostra applicazione web potrà convertire i file con queste poche righe di codice:

Scarica i sorgenti e prova la soluzione!
Alcuni link per approfondire l'argomento:
.Net Remoting
Convert Word-Documents to PDF on an ASP.NET Server
Nessun commento:
Posta un commento