2012-08-16 11 views
7

Sto utilizzando l'ultima versione di ionic zip versione 1.9.1.8. Ho impostato la proprietà di zip ionica ParallelDeflateThreshold = 0. Il meccanismo di chiusura a cerniera funzionava perfettamente negli ultimi due mesi. Sfortunatamente questo ha smesso di funzionare. Il filo lampo si blocca, zip ionico ha appena creato il file tmp e non è riuscito a creare il file zip. Potrei facilmente riprodurre questo problema anche con file di piccole dimensioni.Compressione non riuscita quando si utilizza zip ionico

La mia analisi di questo problema è la seguente

Il problema è stato con l'ultima versione di zip ionico, in questo caso la zip ionica impiccato durante la creazione dei file zip. Abbiamo notato che, un paio di altri utenti che usano questa dll hanno riportato anche tali errori nel loro sito. Si prega di fare riferimento a the link. Questo problema verrà risolto disabilitando la proprietà ParallelThreshold di ionic zip, ma ritarderà le prestazioni per file di registro di grandi dimensioni, poiché funziona su thread singolo anziché in modalità multithread.

Il problema è stato risolto ora impostando la proprietà ParallelDeflateThreshold sul valore predefinito. Ma non sono riuscito a trovare la causa esatta di questo problema. Non c'era nessun cambio di macchina.

+0

Qualcuno su http://dotnetzip.codeplex.com/ potrebbe essere in grado di aiutare. – Surfbutler

risposta

15

Mi trovavo di fronte a un problema simile, con file zip più piccoli di meno di 20-25 MB, ci sono voluti 3-4 secondi, ma qualsiasi cosa più grande, ci voleva del tempo infinito. Il codice non ha mai completato l'esecuzione.

Ho iniziato a temere che forse era la decisione sbagliata di utilizzare la libreria DotNetZip dopo tutto, dato che lavoriamo con zipfile fino a 500 MB.

Prima che la linea in cui è stato salvato il file zip, ho aggiunto: zip.ParallelDeflateThreshold = -1;

Questo assicura che thread separati non sono mai creati. Sembra che una volta che i file zip superano una certa soglia, DotNetZip continua a creare numerosi thread causando una latenza molto grande nell'ottenere il file zip finale.

+0

È strano che il DotNetZip mostri un comportamento simile su file di grandi dimensioni. comunque ho impostato questa proprietà sul valore predefinito (-1 se non ho sbagliato) e ora funziona. Grazie – Techy

+0

Siete i benvenuti. – Kimi

Problemi correlati