Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
231 views
in Technique[技术] by (71.8m points)

.net - Increase file upload size limit in iis6

Is there any other place besides the metabase.xml file where the file upload size can be modified?

I am currently running a staging server with IIS6 and it is setup to allow uploading of files up to 20mb. This works perfectly fine. I have a new production server where I am trying to setup this same available size limit. So I edited the metabase.xml file and set it to 20971520. Then I restarted IIS and that didn't work. So I then restarted the entire server, that also didn't work. I can upload files around 2mb so it is definitely allowing file sizes larger then the standard 200kb default size. I try uploading a 5mb file and my upload.aspx page completely crashes. Is it possible there is something else I need to configure? The production server is located on a server farm, could there be some limits set on there end?

Thanks

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

I will extend my answer to your question to take into account other possible situations.

A very good link to learn about uploading big size files is this one: http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx

Here Jon Galloway explains the best techniques to treat the problem:

1.-Changing machine config or web.config:

<system.web>
  <httpRuntime executionTimeout="240" maxRequestLength="20480" />
</system.web>

Here you change not only the maxRequestLength, but you must give more seconds for the executionTimeout.

Interesting thing: Take into account that the value of this setting is ignored in debug mode. The default in .NET Framework 2.0 is 110 seconds. In the .NET Framework 1.0 and 1.1, the default is 90 seconds.

2.-Talking about the real solution, HttpModules like the free of charge NeatUpload

3.-Explaining another way of uploading more intuitively: Silverlight or flash swfupload

4.-He speaks about one restriction II7 has. In this page http://www.telerik.com/help/aspnet-ajax/upload_uploadinglargefiles.html you can find more interesting settings for IIS 7, to set a maximum of 100 megas. You add:

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

And you must open the file C:WindowsSystem32inetsrvconfigapplicationHost.config and find the line:

<section name="requestFiltering" overrideModeDefault="Deny" />

changing to:

<section name="requestFiltering" overrideModeDefault="Allow" />

Another interesting thing Galloway mentions: "In ASP.NET 1.0 and 1.1, the entire file was loaded into memory before being written to disk. There were improvements in ASP.NET 2.0 to stream the file to disk during the upload process."

For IIS6 the solution Chris gives I think is appropriate:

http://www.banmanpro.com/support2/File_Upload_limits.asp

Another source:

http://www.telerik.com/support/kb/aspnet-ajax/upload/page-not-found-error-when-uploading-large-files-on-win2003.aspx


Another URL where one user has tested a lot of components here:

http://remy.supertext.ch/2008/01/file-upload-with-aspnet/

He refers to a codeproject project (!) that is another very good example of using large files and flash here:

http://www.codeproject.com/KB/aspnet/FlashUpload.aspx


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...