Как увеличить ограничение на размер загружаемого файла? - PullRequest
0 голосов
/ 18 декабря 2018

Я использую шаблон ABP Zero Core MVC (ASP.Net Core 2.x, MVC, jQuery) версии 4.2.0.Когда я пытаюсь загрузить файл с помощью AJAX в контроллер, я получаю ошибку HTTP 404.13 , которая указывает на превышение максимального размера файла. Здесь и здесь Я нашел решение аналогичной проблемы и попытался ее решить так просто, но они либо не соответствуют используемому шаблону, либо я делаю что-то не так.

Как увеличить максимальный размер загружаемого файла в Zero Core?

// *.Web.Host\Startup\Program.cs 
// *.Web.Mvc\Startup\Program.cs
public static IWebHostBuilder CreateWebHostBuilder(string[] args) {
    return WebHost.CreateDefaultBuilder(args)
        .UseKestrel(options => { 
            // no effect...  I can only small files uploaded
            options.Limits.MaxRequestBodySize = 1024 * 1024 * 1024; 
        })
        .UseStartup<Startup>();
}

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Вы пытались украсить контроллер action с помощью [RequestSizeLimit(YOUR_MAX_TOTAL_UPLOAD_SIZE)] вместе с изменениями в Startup.cs?

services.Configure<FormOptions>(opt =>
{
    opt.MultipartBodyLengthLimit = YOUR_MAX_TOTAL_UPLOAD_SIZE;
});

кстати, если вы планируете разместить приложение на IIS, вы можете добавить файл web.config в свой проект и настроить upload size там, а не настраивать его на сервере IIS.

РЕДАКТИРОВАТЬ: как комментарий @ XelaNimed , добавивфайл web.config вместе с редактированием startup.cs, код заработал.

<configuration>
  <location path="." inheritInChildApplications="false">
   <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">
       <environmentVariables />
     </aspNetCore>
   </system.webServer>
 </location>
 <system.webServer>
   <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="YOUR_BYTES" />
       </requestFiltering>
    </security>
  </system.webServer>
</configuration>
0 голосов
/ 19 декабря 2018

Попробуйте это

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
  //add to beginning of the method... 
  services.Configure<FormOptions>(x =>
  {
      x.ValueLengthLimit = int.MaxValue;
      x.MultipartBodyLengthLimit = int.MaxValue;
      x.MultipartHeadersLengthLimit = int.MaxValue;
  });


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...