2011-06-13 26 views
111

Yükleme için izin verilen maksimum dosya boyutunu değiştirirken, bu iki ayarın üzerine geldim. Eğer maxRequestLength ile http çalışma zamanı düğüme sahipsytem.web olarakÖnceliği alır, maxRequestLength veya maxAllowedContentLength?

. system.webServer sisteminizde requestLimitsmaxAllowedContentLength var.

Şimdi önceliği diğerine mi koyuyorsunuz? Ve ikisini birden ayarlamalı mıyız yoksa sonuncusu (IIS7 için olanı) yeterli mi?

cevap

169

maxRequestLength, ASP.NET tarafından desteklenen maksimum istek boyutunu gösterirken, maxAllowedContentLength, IIS tarafından desteklenen bir istekte maksimum içerik uzunluğunu belirtir. Bu yüzden, büyük dosyaları yüklemek için her ikisini de ayarlamanız gerekir: daha küçük olan "önceliği alır".

(I http://forums.iis.net/t/1169846.aspx bu kaldırdı - krediyi nereden kaynaklanmaktadır.)

Hem uygun web.config dosyasını düzenleyerek bir site içinde belirli bir site veya hatta bir klasöre yerel olarak ayarlayabilirsiniz. Dosya (iyi, istek) uzunluğu, maxAllowedContentLength'dan azsa, ancak maxRequestLength'dan fazlaysa, eğer varsa standart (ASPX) hata sayfanızı alır. Başka bir yol varsa, bunun yerine bir IIS hata sayfası alır. Bu nedenle, maxAllowedContentLength'a çok büyük bir değere sahip olmak isteyebilirsiniz (sadece bu web sitesi/klasör için) ve sonra sınır değer maksRequestLength olmalıdır.

Son olarak, maxRequestLength öğesinin KB içinde olduğunu, oysa maxAllowedContentLength öğesinin BYTES olduğunu unutmayın!

14

Kısa ve güzel cevap, ikisinden küçük olanın öncelik kazanmasıdır. Yine de bir tavsiyem - bence, Max.RequestLength'u ikiden küçük olacak şekilde ayarlamanız tavsiye edilir çünkü Global.asax'ın Application_Error olayında bir istisnayı yakalayabiliyorsunuz. MaxAllowedContentLength değerini aşarsanız, ilk önce ASP.NET yerine onunla başa çıkacak ve bu kodla uğraşması daha da zorlaşacaktır.

İlgili konular