Asp.net ERR_CONNECTION_RESET:上载大文件时重置了连接
我有一个神秘的错误,一个大于4MB的文件生成了一个随机错误。后来我意识到这是由于 . 默认情况下,上载的图像不能大于4MB 我知道这可以从web.config文件更改 当我试图处理这个错误时,通过显示另一个页面,一个不同的错误开始出现。调试时,程序立即进入应用程序错误 执行Asp.net ERR_CONNECTION_RESET:上载大文件时重置了连接,asp.net,iis,maxrequestlength,Asp.net,Iis,Maxrequestlength,我有一个神秘的错误,一个大于4MB的文件生成了一个随机错误。后来我意识到这是由于 . 默认情况下,上载的图像不能大于4MB 我知道这可以从web.config文件更改 当我试图处理这个错误时,通过显示另一个页面,一个不同的错误开始出现。调试时,程序立即进入应用程序错误 执行Server.GetLastError()时生成异常: [System.Web.HttpUnhandledException]{”类型的异常 “System.Web.HttpUnhandledException”被删除 抛出“
Server.GetLastError()时生成异常:
[System.Web.HttpUnhandledException]{”类型的异常
“System.Web.HttpUnhandledException”被删除
抛出“}System.Web.HttpUnhandledException
堆栈跟踪:在System.Web.UI.Page.HandleError(异常e)处
System.Web.UI.Page.ProcessRequestMain(布尔值
IncludeStages前同步点,布尔值IncludeStages后同步点)
在System.Web.UI.Page.ProcessRequest中(布尔值
IncludeStages前同步点,布尔值IncludeStages后同步点)
在System.Web.UI.Page.ProcessRequest()中
位于的System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext上下文)
System.Web.UI.Page.ProcessRequest(HttpContext上下文)位于
中的ASP.businessprofile_aspx.ProcessRequest(HttpContext上下文)
c:\Users\Mattew\AppData\Local\Temp\Temporary ASP.NET
Files\root\4ea30077\8f66786f\App_Web_h5fmhavk.4.cs:第0行
System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,
布尔值(同步完成(&C))
如果我尝试应用程序错误方法中的任何代码,例如重定向,仍然会出现错误页面:
错误101(网络::错误连接重置):连接已重置。
显示
问题
该如何处理此错误?可以提前处理吗?所以这个错误没有显示?(之前我尝试使用jquery获取文件大小并进行检查,但我发现它太复杂了
如果问题1不“可回答”,是否有办法截获此错误并显示友好错误
试试这个
在web.config中的系统web下
加上这一行
<system.web>
<httpRuntime executionTimeout="999" maxRequestLength="2097151"/>
然后您需要检查文件大小
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.");
}
if(AsyncFileUpload1.HasFile)
{
字符串文件名=Path.GetFileName(AsyncFileUpload1.PostedFile.FileName);
字符串扩展名=Path.GetExtension(AsyncFileUpload1.PostedFile.FileName);
字符串FolderPath=ConfigurationManager.AppSettings[“FolderPath”];
字符串FilePath=Server.MapPath(“~/xl/”+文件名);
double filesize=(double)AsyncFileUpload1.FileBytes.Length;
如果(文件大小<106496)
{
//做点什么
}
其他的
{
Write(“文件大小必须小于2MB”);
}
如果您觉得它有用,请将其标记为您的答案,否则请告诉我..这看起来像是IIS限制。请问这到底是什么意思?这是我的代码还是IIS的问题?我甚至不认为我使用IIS,因为我刚刚在Visual Studio上运行了一个临时服务器!您的意思是您正在使用Cassini。我不确定。问题是什么内部异常?Sry我不知道Cassini是什么:/internal exception:请求的最大长度已超出谢谢你的建议。我现在将尝试使用它。在进行更多调试后,我可以添加以下信息:-Response.Headers的Response.Headers“引发了”System.PlatformNotSupportedException“System.Collections.Sp”类型的异常Specialized.NameValueCollection{System.PlatformNotSupportedException}打开它时,我发现的相关消息是“此操作需要IIS集成管道模式。”我尝试过你的建议,它确实有效,因为maxRequestlength非常大。我对此进行了研究。但是,如果用户放置大于maxRequestlength的内容,会发生什么(尽管这种情况非常罕见),这仍然像是开发人员的“作弊”。没有更简洁的方法吗?PS我不使用异步文件上传,我应该使用它吗?使用@AnandMohanAwasthi建议的方法实际上是浪费资源。你让用户上传一个大文件,然后在服务器上拒绝它,因为它比你的lowe大r代码中的限制。我自己正在寻找更好的解决方案,但强烈感觉建议的解决方案是错误的。