我继承了一些我认为不应该工作的代码:
有一个带有文件上传控件的表单,文件限制设置为默认的asp.net 4MB。
在没有使用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)
此外,我尝试上传的文件是12MB。 (如果有所作为)
答案 0 :(得分:1)
你会使用response.redirect而不是server.transfer ....