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
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:\Windows\System32\inetsrv\config\applicationHost.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:
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: