Я унаследовал некоторый код, который не работает так, как мне кажется:
Существует форма с элементом управления загрузкой файлов, ограничение по умолчанию для файла установлено на asp.net 4 МБ.
Нет реального надежного способа проверить размер файла на стороне клиента без использования элементов управления flash / active x.
Итак, я улавливаю ошибку в моем файле Global.asax и выполняю перенос server.transfer в новое местоположение.
Проблема, с которой я столкнулся, заключается в том, что сервер просто зависает при передаче, страница «загружается» и процесс застрял на строке кода Server.Transfer.
Я даже пытался просто перенести любую ошибку, но при загрузке файла он просто сидит там.
Server.Transfer("~/Error.aspx");
Буду признателен за любую помощь, это действительно большой камень преткновения, я должен уметь обрабатывать загрузку пользователем файла, размер которого больше указанного в конфигах. без неприятной ошибки из фреймворка.
Редактировать - может показаться, что передача работает, так как я попадаю в события page_load страницы, на которую я пересылаюсь, я могу проследить это до page_prerender, а затем я не получаю обработанную страницу и браузер просто сидит там и смотрит как он грузит
Редактировать добавленную трассировку стека ошибки, которую я вызываю:
Exception = System.Web.HttpUnhandledException
Inner Exception = System.Web.HttpException
Server.GetLastError.InnerException.Message
Maximum request length exceeded.
Server.GetLastError.InnerException.StackTrace
at System.Web.HttpRequest.GetEntireRawContent()
at System.Web.HttpRequest.GetMultipartContent()
at System.Web.HttpRequest.FillInFormCollection()
at System.Web.HttpRequest.get_Form()
at System.Web.HttpRequest.get_HasForm()
at System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
at System.Web.UI.Page.DeterminePostBackMode()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Кроме того, файл, который я пытаюсь загрузить, имеет размер 12 МБ. (если это имеет значение)