views:

2585

answers:

5

Platform: IIS 6, ASP.Net 2.0 (.Net 3.5), Server 2003.

I'm building an application that accepts files from a user, processes them, and returns a result. The file is uploaded using HTTP POST to an ASP.Net web form. The application is expecting some large files (hundreds of MB).

I'm using SWFUpload to accomplish the upload with a nice progress bar, but that's not contributing to the issue, because when I bypass it using a standard HTML form pointing at my upload accepter page, I get the exact same error. When using the progress bar, the upload continues to 100%, then fails. With a standard form, the behavior appears to be the same.

I'm having a problem right now uploading a file that's about 150MB. I've changed every settings I can find, but still no luck.

Here's a summary of what I've changed so far:

In Web.config: Added this inside system.web:

<httpRuntime executionTimeout="3600" maxRequestLength="1536000"/>

In machine.config: Inside system.web, changed:

<processModel autoConfig="true" />

to:

<processModel autoConfig="true" responseDeadlockInterval="00:30:00" responseRestartDeadlockInterval="00:30:00" />

and in MetaBase.xml: Changed:

AspMaxRequestEntityAllowed="204800"

to:

AspMaxRequestEntityAllowed="200000000"

When the upload fails, I get a 404 error from IIS. My web form does not begin processing, or at least, it doesn't make it to the Page_Load event. I threw an exception at the beginning of that handler, and it doesn't execute at all on large files.

Everything works fine with smaller files (I've tested up to about 5.5MB). I'm not exactly sure what file size is the limit, but I know that my limit needs to be higher than 150MB, since this is not the largest file that the client will need to upload.

Can anyone help?

+2  A: 

When we ran into this issue we had to increase the buffer size limit according to this KB article: http://support.microsoft.com/kb/944886/en-us

I know this mentions ASP, but I believe it worked for ASP.NET as well.

Edit: Here is a link that might be more relevant to your issue and provide other options:
http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx

Chris Roland
The first article is related to downloads, not uploads, but I tried it anyway, with no success. The Jon Galloway article covers the things I mentioned above.
Chris Weisel
Yeah I re-read your question and realized my first link was incorrect, but I felt odd about just taking it all out. So I looked into it a little further and posted the second link as an edit. I hope the second link helped.
Chris Roland
A: 

404 and missing Page_Load: IIS can only process the request once the complete POST is on the server. Therefore, if the POST fails (due to its size), it cannot fire the page's events.

You might try NeatUpload http://www.brettle.com/neatupload. From the Manual: "By default, NeatUpload does not directly limit the size of uploads."

devio
+2  A: 

Urlscan was active on all websites, and has it's own request entity length limit. I wasn't aware that Urlscan was running on our server because it was a global ISAPI filter, not running on my individual website.

Note: to locate global ISAPI filters, right click on the Web Sites folder in IIS Admin and click Properties, then on the ISAPI Filters tab.

Chris Weisel
A: 

You can also try Velodoc XP Edition which has several advantages over NeatUpload including the fact that it uses ASP.NET Ajax extensions. See also the Velodoc web site for more information.

A: 

You say:

But 1536000 is only 1.5MB?

Ewan Makepeace