273 messaggi dal 01 aprile 2004
Ciao,

ho il seguente problema :

nella mia pagina creo un file pdf, la prima volta, quando il file non esiste va a buon fine, mentre la seconda volta non riesce a creare il file perchè risulta in uso !!!

questo è quello che faccio :

DF.DiskFileName = Name;
objRepDOC.ExportOptions.DestinationOptions = DF;
objRepDOC.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
objRepDOC.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
objRepDOC.Export();
objRepDOC.Dispose();

FileInfo file = new FileInfo(Name);

Response.Buffer = true;
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "application/pdf";

Response.ContentEncoding = System.Text.Encoding.UTF8;

Response.WriteFile(Name);
Response.Flush();
Response.Close();


Come mai, anche facendo la Dispose, il file risulta ancora in uso?

grazie

Ciao
Modificato da marcodonza il 17 ottobre 2008 08.41 -

Ciao,
DNZ
marcodonza wrote:
Come mai, anche facendo la Dispose, il file risulta ancora in uso?

perchè probabilmente il componente che uso non lo effettua.

Daniele Bochicchio | ASPItalia.com
I libri su HTML5, WP7, ASP.NET, VB, C#, Entity Framework
Senior Software Architect@5DLabs.it
Microsoft Regional Director for Italy
273 messaggi dal 01 aprile 2004
ma l'unico oggetto che usa il file è il objRepDOC, come faccio a sapere cos'è che tiene impegnato il file?

Ciao,
DNZ
273 messaggi dal 01 aprile 2004
Daniele Bochicchio ha scritto:
marcodonza wrote:
Come mai, anche facendo la Dispose, il file risulta ancora in uso?

perchè probabilmente il componente che uso non lo effettua.



Quando lo creo la prima volta va a buon fine, in quanto il file pdf non esiste ancora su disco. Se lo creo una seconda volta mi da questo errore :

The process cannot access the file '2008_0000000025_012067.PDF' because it is being used by another process.

Ciao,
DNZ
273 messaggi dal 01 aprile 2004
Daniele Bochicchio ha scritto:
marcodonza wrote:
Come mai, anche facendo la Dispose, il file risulta ancora in uso?

perchè probabilmente il componente che uso non lo effettua.



é il pool che lo tiene lockato !
come faccio a "liberarlo" ?

Ciao,
DNZ
marcodonza wrote:
é il pool che lo tiene lockato !
come faccio a "liberarlo" ?

no, è il codice che usi per crearlo. probabilmente il tuo oggetto ha un metodo Dispose e non lo richiami, prova a farlo.
se fai kill dell'app pool ovviamente ricicli tutto ed altrettanto ovviamente il file non è bloccato.

Daniele Bochicchio | ASPItalia.com
I libri su HTML5, WP7, ASP.NET, VB, C#, Entity Framework
Senior Software Architect@5DLabs.it
Microsoft Regional Director for Italy
273 messaggi dal 01 aprile 2004
ma l'unico oggetto che lo usa è quello del crystal (objRepDOC), il mio codice è questo :

DF.DiskFileName = Name;
objRepDOC.ExportOptions.DestinationOptions = DF;
objRepDOC.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
objRepDOC.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
objRepDOC.Export();
objRepDOC.Dispose();

Ciao,
DNZ
marcodonza wrote:
ma l'unico oggetto che lo usa è quello del crystal (objRepDOC), il mio codice è questo :

e DF cos'è? non vedo come viene creato e non vedo se ne fai il Dispose. inoltre, considera di usare un blocco using:
http://blogs.aspitalia.com/ricciolo/post2177/Usate-Statement-Using.aspx

Daniele Bochicchio | ASPItalia.com
I libri su HTML5, WP7, ASP.NET, VB, C#, Entity Framework
Senior Software Architect@5DLabs.it
Microsoft Regional Director for Italy

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.
Community
Ultimi messaggi
UTENTI ONLINE
    In primo piano

    I più letti di oggi

    Media
    In evidenza
    MISC