Şu anda Asp.Net Core ve MVC6 ile dosya boyutunu sınırsız olarak yüklemem gerekiyor. Onun çözümünü aradım ama hala gerçek cevabı almıyorum. Asp.Net core'de dosya boyutunu artırın
kimse bir fikrin yardım lütfen varsa
.Teşekkürler.
Şu anda Asp.Net Core ve MVC6 ile dosya boyutunu sınırsız olarak yüklemem gerekiyor. Onun çözümünü aradım ama hala gerçek cevabı almıyorum. Asp.Net core'de dosya boyutunu artırın
kimse bir fikrin yardım lütfen varsa
.Teşekkürler.
30 MB'den büyük bir dosya yüklediğinizde muhtemelen 404.13 HTTP durum kodu alıyorsunuzdur. ASP.Net Core uygulamanızı IIS'de çalıştırıyorsanız, IIS boru hattı, isteğinizi uygulamanıza ulaşmadan önce durdurur.
Güncelleme web.config:
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
<!-- Add this section for file size... -->
<security>
<requestFiltering>
<!-- Measured in Bytes -->
<requestLimits maxAllowedContentLength="1073741824" /> <!-- 1 GB-->
</requestFiltering>
</security>
</system.webServer>
Önceki ASP.Net uygulamaları da bu bölümü gerekli ancak istekleri katman tarafından işlenir gibi Core artık gerekli değil: In
<system.web>
<!-- Measured in kilobytes -->
<httpRuntime maxRequestLength="1048576" />
</system.web>
Yükleme dosyasının boyutunu artırmak istiyorsanız, Visual Studio 2017 tarafından hazırlanan ASP.NET Core 1.1 projesi. Bu içeriği kendiniz web.config dosyası oluşturmak ve eklemek gerekir:
Startup.cs dosyasında<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<!-- 1 GB -->
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
, bu içerik eklemek:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<FormOptions>(x =>
{
x.ValueLengthLimit = int.MaxValue;
x.MultipartBodyLengthLimit = int.MaxValue;
x.MultipartHeadersLengthLimit = int.MaxValue;
});
services.AddMvc();
}
web.config içeriğini GB değil; için başka bir kapatma etiketine ihtiyacınız vardır ve
diğer cevaplar, IIS kısıtlama çözmek. Ancak, ASP.NET Çekirdek 2.0 itibariyle, Kestrel sunucusu ayrıca kendi varsayılan sınırlarını dayatır.
Github of KestrelServerLimits.cs
Announcement of request body size limit and solution (quoted below)
Belirli bir MVC eylem veya denetleyici için maksimum istek vücut boyut sınırını değiştirmek isterseniz, RequestSizeLimit
özelliğini kullanabilirsiniz. Aşağıdakiler, MyAction
'un 100.000.000 bayta kadar istek gövdelerini kabul etmesine izin verir.
[HttpPost]
[RequestSizeLimit(100_000_000)]
public IActionResult MyAction([FromBody] MyViewModel data)
{
[DisableRequestSizeLimit]
, sınır yine IHttpMaxRequestBodySizeFeature
kullanarak bir istek bazında değiştirilebilir. Örneğin:
app.Run(async context =>
{
context.Features.Get<IHttpMaxRequestBodySizeFeature>().MaxRequestBodySize = 100_000_000;
MaxRequestBodySize
bir null uzun. Null olarak ayarlamak, MVC'nin [DisableRequestSizeLimit]
gibi sınırını devre dışı bırakır.
Yalnızca uygulamayı henüz okumaya henüz başlamadıysa, istek üzerine sınırı yapılandırabilirsiniz; Aksi halde bir istisna atılır.MaxRequestBodySize
özelliğinin salt okunur durumda olup olmadığını bildiren IsReadOnly
özelliği vardır; bu, sınırı yapılandırmak için çok geç olduğu anlamına gelir.
Eğer global maksimum istek vücut boyutunu değiştirmek istiyorsanız
, buUseKestrel
veya
UseHttpSys
ya geri dönüşünde bir
MaxRequestBodySize
özelliğini değiştirerek yapılabilir.
MaxRequestBodySize
, her iki durumda da null uzun. Örneğin: Muhtemelen 30MB geliyordu
.UseKestrel(options =>
{
options.Limits.MaxRequestBodySize = null;
veya
.UseHttpSys(options =>
{
options.MaxRequestBodySize = 100_000_000;
, doğru değildir listelemek – jao