Получение ошибки: - system.web.httpcontext.current.request.файлы "вызвали исключение типа" system. outofmemoryexception
Когда мы загружаем несколько загружаемых файлов, загружается большой размер файла. Тогда мы получаем ошибку: - System.Web.HttpContext.Current.Запрос.Файлы "выбрасывали исключение типа "система".OutOfMemoryException. В обработчике файла запроса " HttpFileCollection files = context. Request.Архив".
Что я уже пробовал:
ajaxFileUploadFile: function (e) { try { debugger; var _data = new Array(); _data.push({ 'name': 'action', 'value': 'uploadFile' }); _data.push({ 'name': 'folderpath', 'value': $("#hdnfolderpath").val() }); _data.push({ 'name': 'AssetValue', 'value': 'IM' }); $(e).SingleFileUploader({ action: 'Handler/hnUploadfile.ashx', fileinputid: "uploadfile1", senddata: _data, queueSizeLimit: 50, fileSizeLimit: '900MB', onSubmit: function (filename) { }, onSelect: function (file) { $("#btnImportToDataBase").attr('disabled', true); $("#btnValidateData").attr('disabled', true); $("#btnUpload").attr('disabled', true); }, onComplete: function (filename, response) { if (response == 1) { $("#spnChooseFile").html("Choose a file…"); $("#divAlertFile1").html("Error in uploading file. Sorry for inconvience. Please try again."); $("#divAlertFile1").removeClass(); $('#uploadmediafile').attr('disabled', false); $("#uploadfile1").attr('disabled', false); $("#UploadLJpg").attr('disabled', false); $("#divAlertFile1").addClass("alertMessage alert-danger"); $("#divAlertFile1").show(); $("#divfileuploader1").addClass("progress-bar-danger"); ProgressBar1.running = false; $("#divfileuploader1").css('width', '100%').attr('aria-valuenow', 100); $("#progressBar1").delay(2000).hide(0); $("#lblfileUploadFlag").html(""); $("#txtfile").val(""); setTimeout(function () { $("#divAlertFile1").hide(); $("#divfileuploader1").removeClass("progress-bar-danger"); $("#divfileuploader1").addClass("progress-bar"); ProgressBar1.running = true; UploadFile1.initlizeFileControl(); $("#uploadfile1").unbind(); $("#btnUploadFile1").unbind(); $("#uploadfile1").change(function () { UploadFirstCall = false; UploadFile1.ajaxFileUploadFile("#btnUploadFile1"); UploadFile1.imageChangeFile(this); }); }, 5000); } else if (response == 2) { $("#spnChooseFile").html("Choose a file…"); if (page_count == 1) { $("#divAlertFile1").html("Please upload pdf of " + page_count + " page."); } else { $("#divAlertFile1").html("Please upload pdf of " + page_count + " pages."); } $("#divAlertFile1").removeClass(); $("#divAlertFile1").addClass("alertMessage alert-danger"); $("#divAlertFile1").show(); $('#uploadmediafile').attr('disabled', false); $("#uploadfile1").attr('disabled', false); $("#UploadLJpg").attr('disabled', false); $("#divfileuploader1").addClass("progress-bar-danger"); ProgressBar1.running = false; $("#lblfileUploadFlag").html(""); $("#txtfile").val(""); $("#divfileuploader1").css('width', '100%').attr('aria-valuenow', 100); $("#progressBar1").delay(2000).hide(0); setTimeout(function () { $("#divAlertFile1").hide(); $("#divfileuploader1").removeClass("progress-bar-danger"); $("#divfileuploader1").addClass("progress-bar"); ProgressBar1.running = true; UploadFile1.initlizeFileControl(); $("#uploadfile1").unbind(); $("#btnUploadFile1").unbind(); $("#uploadfile1").change(function () { UploadFirstCall = false; UploadFile1.ajaxFileUploadFile("#btnUploadFile1"); UploadFile1.imageChangeFile(this); }); }, 4000); } else { OnCompletegetfiledetails(filename, JSON.stringify(response), true) $("#spnChooseFile").html("Choose a file…"); $("#divfileuploader1").addClass("progress-bar-success"); $('#uploadmediafile').attr('disabled', false); $("#uploadfile1").attr('disabled', false); $("#UploadLJpg").attr('disabled', false); ProgressBar1.running = false; $("#divfileuploader1").css('width', '100%').attr('aria-valuenow', 100); $("#progressBar1").delay(2000).hide(0); var data = jQuery.parseJSON(JSON.stringify(response)); setTimeout(function () { $("#divAlertFile1").removeClass(); $("#divAlertFile1").html(data.assetfiles + ' is ' + "Uploaded"); // $("#divAlertFile1").html(data.uploaded_file_name + ' is ' + "Uploaded"); $("#divAlertFile1").addClass("alertMessage fileuploadsuccess"); $("#divAlertFile1").show(); $("#divfileuploader1").removeClass("progress-bar-success"); $("#divfileuploader1").addClass("progress-bar"); ProgressBar1.running = true; UploadFile1.initlizeFileControl(); $("#uploadfile1").unbind(); $("#btnUploadFile1").unbind(); $("#uploadfile1").change(function () { UploadFirstCall = false; UploadFile1.ajaxFileUploadFile("#btnUploadFile1"); UploadFile1.imageChangeFile(this); }); }, 2000); } } }); } catch (Error) { } } } C# handler code:- HttpFileCollection files = context.Request.Files; for (int i = 0; i < files.Count; i++) { // Thread.Sleep(3000); HttpPostedFile fileToUpload = files[i]; }
F-ES Sitecore
Вы гуглили ошибку и следили за любыми возможными решениями?
Sunil Badyal
да, я погуглил, и у меня нет никакого возможного решения. Пожалуйста помочь
F-ES Sitecore
Если мы не знаем, что вы уже пробовали, трудно дать ответ
Richard MacCutchan
Очевидный ответ-использовать меньше памяти.
Sunil Badyal
На самом деле нам нужно загружать файлы большого размера и загружать файлы оптом.Так как мы можем использовать меньше памяти.
Richard MacCutchan
Очевидно, вы должны посмотреть, что делает ваш код, и выяснить, как и почему он потребляет так много памяти. Нравится вам это или нет, но есть пределы тому, что может сделать компьютер, и вы должны работать в этих пределах.
Jochen Arndt
queueSizeLimit: 50,
fileSizeLimit: '900MB',
Это может быть много памяти. Уменьшите ограничение размера очереди или установите больше оперативной памяти.
Помещение некоторого количества ГБ в очередь загрузки файлов не ускорит отправку при достижении пропускной способности сети.