У меня проблемы с загрузкой больших файлов в веб-приложение MVC .net core 2.0.
Я видел такие статьи, как эта, в которой показано, как увеличить ограничение размера файла в .netcore 2.0: Увеличение предела длины запроса на загрузку в Kestrel
Итак, следуя примеру, я попробовал оба варианта.В настоящее время у меня есть это в моем Program.cs:
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(options => options.Limits.MaxRequestBodySize = null)
.Build();
... и мой метод загрузки ajax-файла на контроллер выглядит следующим образом:
[HttpPost]
[RequestSizeLimit(1_074_790_400)]
[Route("api/article/uploadfile/{mediaType}")]
public async Task<IActionResult> UploadFile(string mediaType)
У меня есть доступ к загруженнымфайлы, использующие Request.Form.Files
Javascript в представлении выглядит следующим образом:
$('#upload-videos').change(function () {
var files = $("#upload-videos").get(0).files;
uploadMedia(false, files);
})
function uploadMedia(isPhoto, files) {
var type;
if (isPhoto) {
type = "i";
}
else {
type = "v";
}
var data = new FormData();
if (files.length > 0) {
for (idx = 0; idx < files.length; idx++) {
data.append("fileImage" + idx, files[idx]);
}
$.ajax({
url: "/api/article/uploadfile/" + type,
type: "POST",
processData: false,
contentType: false,
dataType: false,
data: data,
success: function (jsonData) {
refreshUploadedImages(jsonData, isPhoto);
}
});
}
}
Проблема в том, что даже с изменениями, чтобы увеличить лимит загрузки на месте, я получаю ответ:
Не удалось загрузить ресурс: сервер ответил со статусом 500 ()
Если я поставлю точку останова в первой строке метода контроллера, этоникогда не попадает в него, поэтому с этим кодом проблем не возникает.
Все отлично работает с небольшими файлами, но когда я пытаюсь загрузить файл размером 538 286 КБ, это не получится.
Может кто-нибудь помочь с этим?
Обновление: для получения дополнительной информации проблема возникает, когда размер загружаемого файла находится где-то между 122 211 КБ и 137 840 КБ независимо от каких-либо настроек RequestSizeLimit, и ошибки постоянно.
Обновление 2: я только что обновил все пакеты .net core и все пакеты .net core nuget до версии 2.1, но проблема все еще существует.