2013-03-06 14 views
5

Sto usando controllo di caricamento di file in ASP.Net, ha seguito l'approccio blog qui sotto.dimensione del file massima consentita dal file ASP.NET Controllo caricamento

http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx

Il valore predefinito 4 MB si trova in machine.config, ma si può ignorare che in voi web.config. Per esempio, per espandere il limite di upload a 20 MB, faresti questo:

<system.web> 
    <httpRuntime executionTimeout="240" maxRequestLength="20480" /> 
</system.web> 

Domanda: Fino a quale livello (dimensione massima) posso aumentare la lunghezza desiderata e quale sarà l'impatto sulle prestazioni in loco se permettessimo all'utente di caricare anche 50-60 MB di file.

+0

Bene, l'impatto sulle prestazioni sarà che ogni volta che qualcuno carica un file di grandi dimensioni, utilizzerà molta larghezza di banda ..... – Liam

+0

è di circa 2 GB per IIS 7 (ma la considerazione di @Liam sull'ampiezza di banda è vera). Se proprio ne hai bisogno ... è meglio implementare un'altra interfaccia per il caricamento dei file (ad esempio utilizzando i POST e le estensioni personalizzate del browser). –

+0

@ Liam, @ Adriano L'applicazione sarà ospitata su intranet e quindi la larghezza di banda disponibile è maggiore. Ma voglio limitare l'utente a qualche limite come se IIS fosse impegnato a fornire file da 100MB-200MB, gli altri utenti del sito Web avrebbero prestazioni inferiori. – Pratik

risposta

5

Il livello massimo 'teorica' per il campo maxRequestLength è il valore massimo per il sottoscritto tipo di dati intero a 32 bit (Int32.MaxValue).

Tuttavia, si sta andando ad avere per testare il caricamento al fine di comprendere le prestazioni.

EDIT:

Da a Microsoft support ticket:

In teoria, la dimensione massima di caricamento di file è abbastanza grande. Tuttavia, a causa del monitoraggio dello stato di salute di ASP.NET, non è possibile caricare file molto grandi di in ASP.NET. Il processo di lavoro ASP.NET ha uno spazio virtuale di spazio di 2 gigabyte (GB). Tuttavia, il processo di lavoro ASP.NET solo utilizza poco più di 1 GB a causa del monitoraggio dello stato e della frammentazione della memoria .

Durante il processo di caricamento, ASP.NET carica l'intero file nella memoria prima che l'utente possa salvare il file sul disco. Pertanto, il processo può essere riciclato a causa dell'attributo memoryLimit del tag processModel nel file Machine.config. L'attributo memoryLimit specifica la percentuale di memoria fisica che il processo di lavoro ASP.NET può scarico prima che il processo venga riciclato automaticamente. Riciclaggio impedisce la perdita di memoria causando l'arresto anomalo di ASP.NET o l'interruzione della risposta .

Inoltre, altri fattori giocano un ruolo nella dimensione massima dei file che possono essere caricati . Questi fattori includono la memoria disponibile, lo spazio disponibile su disco rigido , la velocità del processore e il traffico di rete corrente. Con traffico regolare dei file caricato, si consiglia pertanto di utilizzare una dimensione massima del file nella gamma di 10 a 20 megabyte (MB). Se si carica il file raramente, la dimensione massima del file può essere di 100 MB.

Nota È possibile caricare file di dimensioni superiori a 100 MB in ASP.NET. Tuttavia, Microsoft consiglia di seguire le dimensioni massime di caricamento del file menzionate in questo articolo. Per determinare le dimensioni del file più precise, eseguire test di stress su computer che sono simili a quelli che verranno utilizzati nella produzione.

+0

-1, no, è espresso ** in KB ** e il limite è molto più basso (2.097.152 KB = 2 GB) –

+0

@Adriano Non ho menzionato nulla sulla qualifica del numero. Tuttavia, è bene sapere che è KB, aggiornerò la mia risposta. –

+0

@DavinTryon La spiegazione è molto utile per giustificare i limiti del controllo di caricamento del file ASP.net. Molte grazie. – Pratik

Problemi correlati