今天在公司的服务器上搭建了一个Dvbbs.Net 1.1,协助管理公司一些办公文件,由于要上传的文件大小部分较大(超过几十兆),所以今天的大部分时间是研究怎么破除上传的限制问题。知道23点以后才基本上解决。
现将问题处理的经验总结如下:
一、默认允许上传4M的文件。 修改 Machine.config 文件,改动 MaxRequestLength 参数的值。在c:\winnt\microsoft.net 目录下搜索该文件. 需要注意的是:在保存文件时,您应该确保指定文件的完整路径(例如,"C:\MyFiles\Picture.webp"),并确保为 ASP.NET 使用的帐户提供要存储文件的目录的写权限。上载大文件时,可使用 元素的 maxRequestLength 属性来增加文件大小的最大允许值,例如: <configuration> <system.web> <httpRuntime maxRequestLength="1048576" executionTimeout="3600" /> </system.web> </configuration> 其中:maxRequestLength:指示 ASP.NET 支持的HTTP方式上载的最大字节数。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。executionTimeout:指示在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。在当文件超出指定的大小时,如果浏览器中会产生 DNS 错误或者出现服务不可得到的情况,也请修改以上的配置,把配置数加大。
二、另一个问题 另外,上载大文件时,还可能会收到以下错误信息: aspnet_wp.exe (PID: 1520) 被回收,因为内存消耗超过了 460 MB(可用 RAM 的百分之 60)。 如果遇到此错误信息,请增加应用程序的 Web.config 文件的 元素中 memoryLimit 属性的值。例如: <configuration> <system.web> <processModel memoryLimit="80"/> </system.web> </configuration>
如果是Windows Server2003: 在Windows Server 2003 下上传大文件注意事项: 在Windows Server 2003上传较大的附件进行发送时系统报错: 1.先在服务里关闭iis admin service服务 2.找到 WINDOWS\system32\inetsrv\下的MetaBase. 打开,找到ASPMaxRequestEntityAllowed 把他修改为需要的值,默认为204800,即200K,把它修改为51200000或者更大[根据文件大小确定]。 3.然后重启iis admin service服务。