Server.Transfer from Global.asax Application_Error
I have inherited some code that is not working as I think it should:
There is a form with a file upload control on it, the file limit is set to the default of asp.net 4MB.
There is no real reliable way to test for file size on the client side without using flash/active x controls.
So I am catching the error in my Global.asax file and doing a server.transfer to a new location.
The problem I am having is that the server just hangs on the transfer, the page sits there "loading" and the process remains stuck on the Server.Transfer line of code.
Я даже пытался просто перенести на любую ошибку, но при загрузке файла он просто сидит там.
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 МБ. (в случае, если это имеет значение)
1 ответ
Вы будете использовать response.redirect вместо server.transfer....