Questa mattinami sono imbattuto in un comportamento alquanto strano tentando di salvare sul server un file caricato con l'oggetto AsyncFileUpload dell'AJAX Control Toolkit. Innanzi tutto, ho configurato la dimensione massima per i file impostando l'elemento httpRuntime nel file web.config:
<httpRuntime maxRequestLength="102400" />
In questo modo, il caricamento di file sul PC di sviluppo funzionava correttamente. Tuttavia, una volta installato il sito in produzione, tentando di caricare file più grossi di 400 KB ottenevo il messaggio di errore: "Impossibile accedere ad un file chiuso". Facendo qualche ricerca su Internet, ho scoperto che il problema era dovuto alla mancanza dell'attributo requestLengthDiskThreshold sull'elemento httpRuntime. Esso imposta il numero di byte che sono mantenuti in cache; i dati oltre tale valore sono temporaneamente scritti su disco. Il valore di default di tale attributo è 256 (byte). Aumentandolo in questo modo:
<httpRuntime maxRequestLength="102400" requestLengthDiskThreshold="15360" />
Sono stato in grado di caricare i file correttamente anche sul sito in produzione.