martedì 3 novembre 2009

MS Chart Control per .Net 3.5 - Directory temporanea non valida nella configurazione del gestore del grafico

Appena installato MSChart ci regala subito un bell'errore.
L'errore viene generato perchè di default il componente imposta la proprietà imagestoragemode=UseHttpHandler; peccato però che negli Handler HTTP, e quindi utilizzati come modalità di storage delle immagini, impostati nel web.config quando effettuiamo il drag del componente sulla nostra pagina viene impostato :

add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;"

beh ovviamente la cartella c:\TempImageFiles\ non esiste, dato che l'installazione non la crea, e quindi il componente và in errore.
La soluzione più immediata per risolvere il problema è cambiare la proprietà imagestoragemode ad UseImageLocation.
Una volta effettuata l'operazione vedremo che il componente viene correttamente renderizzato e viene creata un immagine nel ns. Hard Disk chiamata ChartPic_000001.png nella stessa cartella della ns. pagina.
E' possibile modificare la collocazione delle pagine agendo sulla proprietà imagelocation.
Una volta creata una cartella per le immagini dei grafici e date le appropriate permission inserire nella suddetta proprietà il nuovo path ad esempio : ~/immaginiGrafici/ChartPic_#SEQ(300,1)
A questo punto il componente creerà nella cartella ImmaginiGrafici del nostro sito le immagini renderizzate secondo la nomenclatura ChartPic_numeroimmagine;
una per ogni chiamata che verrà fatta al componente dagli utenti del sito.
Fortunatamente il valore 300 setta il numero massimo di immagini renderizzabili prima della sovrascrittura altrimenti ci troveremmo, per alti traffici, con un disco pieno di immagini dei grafici.
Implicazione non trascurabile della creazione di file grafici residenti nel sito risulta essere la sicurezza della ns. applicazione; per dati non sensibili può risultare trascurabile ma per informazioni riservate lasciare l'immagine generata non è una bella idea.
Il ChartImageHandler invece fornisce un maggior livello di personalizzazione che analizzeremo successivamente.

Nessun commento:

Posta un commento

Cerca nel blog