2009-06-24 9 views
17

Mi piacerebbe avere più di 1 impostazione per maxRequestLength - limitazione del caricamento della dimensione del file (ad esempio uno per File/Nuovo, altro per Foto/Nuovo). Tutte le mie azioni richiedono parametri aggiuntivi (ad esempio/File/Nuovo? FolderId = 234).limitazione caricamento dimensione file in ASP.NET MVC: più di 1 impostazione maxRequestLength in web.config (s)

Impostazione singola funziona come previsto:

<httpRuntime executionTimeout="60" maxRequestLength="1024" /> 

ho cercato di avere 2 impostazioni con 2 sezioni posizione nel web.config root, ma senza alcun successo. Non sono sicuro di cosa scrivere in "path": pagina fisica di aspx di una vista, controller + azione ... tuttavia, niente sembra funzionare.

<location path="/File/"> 
    <system.web> 
     <httpRuntime executionTimeout="60" maxRequestLength="4096" /> 
    </system.web> 
</location> 
<location path="/Picture/"> 
    <system.web> 
     <httpRuntime executionTimeout="60" maxRequestLength="1024" /> 
    </system.web> 
</location> 

ho cercato di mettere un altro web.config in una cartella vista specifica (ad esempio,/Vista/Foto/...), come funziona in classico Webform ASP.NET, ma questo non sembra fare il trucco o ...

<location path=""> 
    <system.web> 
     <httpRuntime executionTimeout="60" maxRequestLength="1024" /> 
    </system.web> 
</location> 

Non importa quello che faccio, un solo valore per httpRuntime.maxRequestLength viene applicato - che in (root) web.config ... system.web.

risposta

11

Credo che l'attributo di percorso non deve iniziare o terminare con un "/" - così si dovrebbe avere:

<location path="File"> 
    <system.web> 
    <httpRuntime executionTimeout="60" maxRequestLength="4096" /> 
    </system.web> 
</location> 
<location path="Picture"> 
    <system.web> 
    <httpRuntime executionTimeout="60" maxRequestLength="1024" /> 
    </system.web> 
</location> 

tuo virtuale o fisico directory di livello Web.config non dovrebbe avere gli elementi> posizione <.

Questo dovrebbe risolvere il problema.

La documentazione per la Location element hanno anche questo molto esempio:

Il seguente illustra come impostare il limite di dimensione del file caricato a 128 KB per solo la pagina specificata.

<configuration> 
    <location path="UploadPage.aspx"> 
    <system.web> 
     <httpRuntime maxRequestLength="128"/> 
    </system.web> 
    </location> 
</configuration> 
+0

Hai ragione, ovviamente. Ho provato ogni possibile variazione ("Picture", "/ Picture", "Picture /", "/ Picture /", "Views/Picture" ecc.), Ma quando ho postato la mia domanda ho scelto "/ Picture /", che era ovviamente sbagliato. Tuttavia, non ha funzionato per qualche altra ragione. Ho rifattorizzato il codice (cambiato il modo in cui i parametri sono stati forniti - ora come parametri di querystring) e ha iniziato a funzionare correttamente, ma non sono abbastanza sicuro di quale fosse il problema. :-(Grazie comunque! :-) – Alex42

0

Questa soluzione è incompleto, perché IIS 7 ha le impostazioni "Richiesta di filtraggio" limitati a 30Mb per impostazione predefinita. Si dovrebbe aumentare questo parametro, vedere i dettagli in my blogpost

Problemi correlati