怎样在ASP.NET中使用VB.NET上传大文件

 
    这里的内容基本上来自MSDN中的一篇文章,标题为《

How to upload a file to a Web server in ASP.NET by using Visual Basic .NET

》,英文没问题的话,Redirect到这篇文章好了。
    使用Windows2003的iis 6.0会对文件上传的大小做一限制,这使得服务器更安全。默认的asp上传大小为200k,Asp.NET的大小为4M。网上有很多文章介绍如何突破IIS 6.0上传文章限制的,其实是适用于asp页面的文件上传,而在.NET环境中如何做的,我用google搜索了一下午,也没找到一篇中文的,万般无奈,见英文就脖子硬的我只好搜搜英文页面,总算在微软的MSDN上找到了比较标准的答案。不敢独享,献给象我一样英文欠佳的朋友。

    默认情况下,ASP.NET  允许上传到Web服务器的文件为小于等于4096k,也就是4M,如果上传的文件大于设定的值,那么你会在浏览器页面看到“找不到服务器或DNS”之类的错误信息,一定会让你迷惑不解的,呵呵。如果希望上传更大的文件,那么就必须修改 Web.config 文件中 <httpRuntime> 节  maxRequestLength 参数的值。如果你使用VS.NET新建一个项目,那么VS.NET创建的 Web.config 文件中并没有加上 <httpRuntime>节,你可以自己加上就好了。注意要包在<system.web>节的里面。

如:

<httpRuntime  maxRequestLength="409600" />

    这样上传的文件就可以是小于等于400M了。文件修改保存后可以立即生效,不必重启IIS。

    有时,我们希望整个服务器的应用都可以上传大的文件,那么可以在 Machine.config 文件中修改 <httpRuntime> 节 maxRequestLength 属性的值。要注意的是这个文件的位置可不是在Web服务的根目录下,而是在 \系统目录\Microsoft .NET\Framework\版本号\config目录下,(粗斜体根据具体环境设置)。例如我的环境下就应该是:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG。也是设置好立即生效,不需重启IIS。

    Web.config中的值可以覆盖Machine.config中的设置。

    因为上传时ASP.NET首先将整个文件读进内存,然后再写入磁盘,所以,上传过大的文件会让服务器不堪重负的。

原文地址:https://www.cnblogs.com/hsxixi/p/222236.html