46 messaggi dal 25 maggio 2010
Ciao a tutti,
ho creato una web application fruibile nell'intranet della mia azienda, situata in un pc normalissimo senza s.o. server specifico.
Mentre finora per la produzione di file pdf avevo potuto optare per le librerie iTextSharp, perchè non avevo modelli di riferimento complessi, questa volta ho dovuto utilizzare un foglio excel già predisposto.
Dopo qualche ricerca in rete ho pensato di poter sfruttare le librerie di office 2007 per la produzione del file pdf attraverso il Primary Interop Assembly.
Apro una breve parentesi per chi scegliesse di utilizzare la stessa soluzione e si trovasse di fronte all'errore di protezione causato dalla mancanza dei permessi di asp.net all'utilizzo di tale assembly:
- eseguire il comando DCOMCNFG dal prompt dei comandi;
- espandere il nodo Component services > Computers > My computer > DCOM config
- cliccare con il tasto dx sull'applicazione excel e autorizzare l'utente Asp.net al controllo completo.
Riprendendo il discorso, il file pdf viene generato e salvato nel server ma i tempi per la creazione e la visualizzazione sono secondo me poco performanti in termini di tempo, a volte ci vogliono anche 30 secondi.
Non potendo in questo momento sostituire né il pc server né il sistema operativo che ci gira, secondo voi se ne raddoppiassi la Ram migliorerei le prestazioni? Oppure conoscete una qualche altra soluzione che potrei adottare e che non mi faccia impazzire a ricostruire completamente il foglio excel?
Grazie in anticipo,
s
Modificato da S70 il 02 aprile 2011 08.06 -
S70 wrote:
Oppure conoscete una qualche altra soluzione che potrei adottare e che non mi faccia impazzire a ricostruire completamente il foglio excel?

processali con una app non ASP.NET (un Windows Service), così che poi tu possa notificare all'utente che è pronto. secondo me, rifatorizzando in questo modo, probabilmente la generazione in sè diventa più veloce, perchè puoi permetterti di non creare ogni volta le istanze di tutto l'ambaradan. certamente aumentare la ram può aiutare, ma in genere in questi casi il collo di bottiglia sono CPU e disco.
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
46 messaggi dal 25 maggio 2010
Ciao Daniele,
se non ho capito male, dovrei sviluppare un'applicativo windows, esattamente un servizio, che richiamato si preoccupi di compilare il file excel e della successiva conversione in pdf.
Tale servizio riceverà i parametri input (es: id del record e nome file .xlsx e nome del file .pdf che verrà salvato) e salverà il file .pdf nel disco, scrivendo nel db il relativo link. La web application mostrerà solamente tale link che richiamato visualizzerà il file pdf.
Giusto?

Al momento invece la web application ogni volta che deve visualizzare il file lo ricrea ex-novo con tutte le attese che lamentavo....

Un saluto a tutto il gruppo,
s
S70 wrote:
Giusto?

esatto. per notificare l'utente nell'attesa, hai 2 strade: polling ogni x secondi con lettura dello stato su database, oppure via e-mail. .

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

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.