ERR_CONNECTION_RESET:上传大文件时重置连接

tes*_*est 8 asp.net iis maxrequestlength

我有一个神秘的错误,大于4MB的文件产生一个随机错误.后来我意识到这是由于httpmaxrequestlength造成的 .默认情况下上传时,图片不能超过4MB.

我知道这可以从web.config文件更改.

当我尝试通过显示另一个页面来尝试解决此错误时,会弹出一个不同的错误.调试时,程序立即进入application_error.

执行Server.GetLastError()Exception时生成:

[System.Web.HttpUnhandledException] {"抛出类型'System.Web.HttpUnhandledException'的异常."} System.Web.HttpUnhandledException

堆栈跟踪:位于System.Web.UI.Page.ProcessRequestMain(布局includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)的System.Web.UI.Page.HandleError(Exception e),位于System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint,Boolean位于ASP.businessprofile_aspx.ProcessRequest(HttpContext)的System.Web.UI.Page.ProcessRequest(HttpContext context)上的System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext上下文)的System.Web.UI.Page.ProcessRequest()处的includeStagesAfterAsyncPoint)在c:\ Users\Mattew\AppData\Local\Temp\Temporary ASP.NET Files\root\4ea30077\8f66786f\App_Web_h5fmhavk.4.cs:System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication中的第0行System.Web.HttpApplication.ExecuteStep中的.IExecutionStep.Execute()(IExecutionStep step,Boolean&completedSynchronously)

如果我在application_error方法中尝试任何代码,例如重定向,仍然是错误页面:错误101(net :: ERR_CONNECTION_RESET):连接已重置.被展示.

问题

  1. 该错误应如何处理?可以事先处理吗?所以这个错误没有显示?(我尝试使用jquery来获取文件大小并检查它,但我发现它太复杂了

  2. 如果问题1不是"回答",有没有办法拦截此错误并显示友好错误?

Ana*_*thi 11

试试吧.

在web.config中的系统Web下

添加此行..

  <system.web>
<httpRuntime executionTimeout="999" maxRequestLength="2097151"/>
Run Code Online (Sandbox Code Playgroud)

然后你需要检查文件大小

if (AsyncFileUpload1.HasFile)
        {
            string FileName = Path.GetFileName(AsyncFileUpload1.PostedFile.FileName);
            string Extension = Path.GetExtension(AsyncFileUpload1.PostedFile.FileName);
            string FolderPath = ConfigurationManager.AppSettings["FolderPath"];
            string FilePath = Server.MapPath("~/xl/" + FileName);
            double filesize = (double)AsyncFileUpload1.FileBytes.Length;
            if (filesize < 106496)
            {
               //do something
            }
            else
            {
                Response.Write("File size must be less than 2MB.");
            }
Run Code Online (Sandbox Code Playgroud)

如果您发现它有用,请将其标记为您的答案,否则请告诉我.