【问题标题】:Server.Transfer from Global.asax Application_ErrorServer.Transfer 从 Global.asax Application_Error
【发布时间】:2011-06-16 13:53:35
【问题描述】:

我继承了一些无法正常工作的代码:

有一个表单,上面有一个文件上传控件,文件限制设置为默认的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。 (以防万一)

【问题讨论】:

    标签: asp.net file-upload global-asax server.transfer


    【解决方案1】:

    你会使用 response.redirect 而不是 server.transfer....

    【讨论】:

    • Response.Redirect 也不起作用,而不是去 error.aspx 它尝试去 default.aspx 然后说无法连接到网站,刷新页面然后加载内容跨度>
    猜你喜欢
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 2011-04-12
    • 1970-01-01
    • 2014-04-19
    • 2012-12-07
    • 1970-01-01
    相关资源
    最近更新 更多