2014-11-21 70 views
1

我有一个asp.net web表单应用程序,我试图用FileUpload控件上传一个带有FileUpload控件的Web窗体中的大文件(13 MB),当我按下提交按钮Web浏览器开始上传文件。但是,当浏览器完成上传时,应用程序无故崩溃,并且不会出现任何异常,也不会进入提交按钮的点击事件代码(c#)。在我的web.config中,我设置了maxAllowedContentLength选项和maxRequestLength选项。大文件不在ASP.NET上上传

<system.webServer> 
<security> 
<requestFiltering> 
    <requestLimits maxAllowedContentLength="52428800" /> 
    </requestFiltering> 
</security> 

<httpRuntime targetFramework="4.5" executionTimeout="900" maxRequestLength="2097151" /> 

这仅发生在Web服务器(Windows Server 2012),在我的本地服务器,这是不会发生。在网络服务器显示一个默认错误(我不管理服务器,所以我不能看到自定义错误正在发生)

我不知道为什么会发生这种情况,因为在Web服务器中的应用程序文件上传选项更大。

感谢您的帮助。

+0

我的第一个权限是上传到的文件夹。这是您之前上传到的文件夹吗?你能管理文件夹的权限吗? – 2014-11-21 23:06:25

+0

我可以在该文件夹中上传最小的文件。在文件夹“Everyone”中可以读取和写入文件。在上传文件之后,写入文件代码不会执行。 – 2014-11-21 23:18:17

回答

0

的问题是在服务器上的限制由不允许上传大文件的管理员。此线程中给出的所有配置都是正确的。

0

它看起来像你错过了开幕“安全”标签在你的web.config

<system.webServer> 
    <security> 
     <requestFiltering> 
      <requestLimits maxAllowedContentLength="52428800" /> 
     </requestFiltering> 
    </security> 
</system.webServer> 
+0

对不起,我手动写,我忘了把它。在我的原始web.config中,开始标签在那里。 – 2014-11-21 23:31:34

0

如果maxAllowedContentLength有一个很大的价值,你的executionTimeout一定要大,太! 它在本地工作,因为您不需要很长时间就可以在硬盘中复制文件。 但是,当你在服务器上传你的网站时,你需要更多的executionTimeout。

+0

将一个executionTimeout标记添加到您的web.config中,并具有很大的价值。 – Arma 2014-11-21 23:38:03

+0

我把它放在3600上,并且不能工作 – 2014-11-22 18:52:43

+0

把它改成90000这样的大数字。 – Arma 2014-11-22 19:10:19

3

修改您的web.config通过以下Stricture,在这里我正在使用max文件请求长度13 MB &最大允许的内容长度1 GB。
现在<system.web>背后web.config中

<httpRuntime targetFramework="4.5" maxRequestLength="13631488" executionTimeout="9000" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="1000" /> 

变化和web配置的<system.webServer>背后写这样的代码

<security> 
    <requestFiltering> 
    <requestLimits maxAllowedContentLength="1073741824" /> 
    </requestFiltering> 
</security> 

感谢