3 messaggi dal 15 novembre 2009
Ciao, cerco di leggere una immagine .gif di 4KB da un server,
con le seguenti due istruzioni

1)var gifFile = Image.FromFile(NetworkItineraryPathAndFilename);

2)gifFile.Save(LocalItineraryPathAndFilename, System.Drawing.Imaging.ImageFormat.Jpeg);

e l'istruzione 1 genera l'eccezione Out Of Memory Exception,se lo faccio con un file .jpg invece il comando funziona!!!

quello che devo fare e' leggere delle immagini .gif e copiarle in locale dopo averle salvate in formato jpg...

avete un idea del perche' ho questo errore.

p.s. sembra legato alla mia macchina,perche' sul pc del mio collega con la stessa configurazione(apparente), cioe' windows 7 32 bit, ram 4 GB
il comando funziona perfettamente!!!

grazie.
marco.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
a meno che quella gif non sia corrotta, penso che la causa non sia l'istruzione Image.FromFile; dovresti cercare il problema altrove.

La OutOfMemoryException è abbastanza esplicita, vuol dire che il server non ha più memoria RAM libera da destinare al processo della tua applicazione. Secondo me è solo un caso che il problema si verifichi in corrispondenza di Image.FromFile, infatti poteva capitare in altri punti dell'applicazione.

Finirsi la RAM non è un'eventualità tanto frequente, quindi dovresti controllare se in quel server se c'è qualche applicazione che la sta allocando senza mai rilasciarla.

Usa il task manager o il performance monitor per controllare quanta RAM stanno occupando i vari processi e se l'utilizzo aumenta con l'andare del tempo.

Se scopri che, effettivamente, c'è un'applicazione .NET che sta fagocitando RAM, allora dovresti andare a controllarne il codice sorgente. Magari c'è un punto in cui non rilasci mai le risorse col .Dispose() e quindi il garbage collector non sa di doverle distruggere perché non più in uso.

ciao,
Moreno

Enjoy learning and just keep making
3 messaggi dal 15 novembre 2009
Ciao,grazie della risposta ,ma in debug l'istruzione Image.FromFile racchiusa tra un try catch va nel catch con errore OutOfMemoryException,
ho verificato la memoria su server durante l'esecuzione del debug e non sembra essere tutta consumata,secondo me e' un problema di dll o di driver della scheda video ,cioe' in qualche modo e' legato alla mia configurazione, se fosse un problema di visual studio lo avrebbero anche i miei colleghi!!!
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

marx731 ha scritto:

cioe' in qualche modo e' legato alla mia configurazione, se fosse un problema di visual studio lo avrebbero anche i miei colleghi!!!

già, anche se faccio difficoltà a credere che il problema sia qualche libreria dll, o i driver della scheda video.
Purtroppo, quando il problema non è riproducibile con facilità su più PC, è sempre difficile scoprirne la causa. L'eccezione OutOfMemoryException forse in questo caso è addirittura fuorviante.

Per quanto possibile proverei a circoscrivere il problema. Ad esempio, se è sempre la stessa immagine che ti dà problemi, potrebbe essere che sia corrotta o che il tuo programma non abbia i sufficienti privilegi per leggerla, specie se si trova in un percorso di rete. Prova a copiarla nella stessa directory del programma e a fargliela leggere da lì. Hai comunque un'eccezione?

Se il problema capita con un'immagine gif a caso, allora può darsi che nello stesso momento quel file sia stato aperto da qualcun altro nella rete (o da qualche altro programma concorrente), o in lettura o in scrittura.

ciao,
Moreno

Enjoy learning and just keep making

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.