2009-06-24 14 views
17

MaxRequestLength - dosya boyutu yükleme sınırlaması için 1'den fazla ayar yapmak istiyorum (örneğin, Dosya/Yeni için bir tane, Resim/Yeni için diğer). Tüm işlemlerim ek parametreler alır (ör./File/New? FolderId = 234).ASP.NET MVC'de dosya boyutu yükleme sınırlaması: web.config (s) 'da 1'den fazla maxRequestLength ayarı

Tek ayar beklendiği gibi çalışır:

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

ben kök web.config 2 konum bölümleri ile 2 ayarlara sahip çalıştı, fakat başarılı. "Yol" da ne yazacağımdan emin değilim - bir görünümün fiziksel aspx sayfası veya denetleyici + eylemi ... ancak hiçbir şey işe yaramıyor gibi görünüyor.

<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> 

Belirli bir görünüm klasöründe başka web.config koymak için çalıştı (örneğin/Görüntüleme/Resim/...), klasik Webform ASP.NET çalışır gibi ama bunu yapmak görünmüyor ya hile ... hiçbir yaparsam yapayım

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

, httpRuntime.maxRequestLength için tek değer uygulanır - (kök) web.config ... System.Web o.

cevap

11

- böylece sahip olmalıdır:

<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> 

Sanal veya fiziksel dizin düzeyinde Web.config'in < konumu> öğeleri olmamalıdır.

Bu sizi dışarı sıralamalıdır. Location element için

docs bile bu çok örneği vardır:

Aşağıdaki kod örneği, belirtilen yalnızca sayfa için 128 KB ye dosya boyutu sınırı ayarlama gösterilmiştir.

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

Siz haklısınız. Her türlü varyasyonu denedim ("Resim", "/ Resim", "Resim /", "/ Resim /", "Görünümler/Resim" vb.), Ancak sorumu gönderirken "/ Picture /" seçeneğini seçtim. Belli ki yanlış. Ancak, başka bir nedenden dolayı işe yaramadı. Kodu yeniden düzenledim (parametrelerin nasıl temin edildiğini değiştirdim - şimdi querystring parametreleri olarak) ve düzgün çalışmaya başladı, ancak sorunun ne olduğundan emin değilim. :-(Yine de teşekkürler! :-) – Alex42

0

Bu çözüm, eksik IIS 7 varsayılan olarak 30Mb ile sınırlı "İstek Filtreleme" ayarları vardır çünkü. Bu parametreyi yükseltmelisiniz, bkz. my blogpost

İlgili konular