718 messaggi dal 08 aprile 2009
Ho una applicazione web che in una determinata fase genera un pdf e viene creato il link sulla pagina per visualizzarlo.
In locale funziona tutto perfettamente ma sul server di rilascio il file mi rimane in uso.
 Exception type: IOException 
    Exception message: The process cannot access the file 'c:\......' because it is being used by another process.



Partendo dal presupposto che ogni utente ha la sua cartella personale dove genero questi file e l'applicativo è ancora in fase di test e quindi utilizzato solo da me non riesco a capire proprio il perchè... Prima di generare il file verifico se già esiste e se vero lo cancello. Prima della cancellazione faccio anche una dispose ma l'errore continua a generarsi.
11.857 messaggi dal 09 febbraio 2002
Contributi
Ciao Laura,
penso che dopo aver scritto il file tu non stia rilasciando il lock posto sul file. Questo si verifica quando non viene chiamato il Dispose dello stream che hai usato per scrivere.

Fai vedere che codice usi per scrivere il file. Non chiamare tu esplicitamente il Dispose ma usa un blocco using ogni qualvolta hai a che fare con un oggetto che implementa IDisposable. In questo modo hai la certezza che il Dispose verrà invocato anche se si dovesse verificare un'eccezione durante la scrittura.

ciao,
Moreno

Enjoy learning and just keep making
718 messaggi dal 08 aprile 2009
Grazie Moreno.
Il problema non era nella creazione del file dove utilizzavo sempre la using ma nell'invio della e-mail in fase di attach del file in cui non veniva chiuso

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.