Solved

Ideal way of uploading huge files in ASP.NET

Posted on 2006-11-06
10
259 Views
Last Modified: 2010-04-06
How to accomodate uploading huge files in ASP.NET. To quantify the term 'huge', I mean something around 500 MB per user.

Since this is a photo studio portal website, I also need to take into account regarding concurrent users and other server equilibrium factors and hence I don't think I can just increase HttpRuntime values in machine.config or web.config just in ad hoc fashion.

If ASP.NET can not scale up, can some workaround be done using ASP or PHP or Perl technologies. The bottomline of the problem is that the application would run in ASP.NET. While an upload is encountering, the handler above would process that and return the processing to the main thread.

Any clues?
0
Comment
Question by:deepaknet
10 Comments
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 17880487
How about letting them mail you a CD or letting you download?
If their connection isn't fast at uploading, it would take prohibitably long time to upload, no?

I don't think I would sit around waiting for my ADSL line to upload 500MB with my 256K up
0
 
LVL 19

Expert Comment

by:VoteyDisciple
ID: 17881352
I think the gist of mplugjan's suggestion is the right track -- having some separate mechanism for uploading files sounds more appealing than trying to do it within the website.  Now, that doesn't mean it can't be done with software, but a kind of "upload in the background" application might be desirable, perhaps something as simple as an old-fashioned FTP dropbox.

I agree with your thinking that trying to coax the server into sometimes allowing hours-long uploads while still behaving "normally" for other pages on the site just doesn't seem practical.
0
 
LVL 15

Author Comment

by:deepaknet
ID: 17896477
The solution should be an online solution. Hence, I don't think the CD solution befits the perspectives of the problem. However, how about some other related technologies like ISAPI and coexisting the same with the current framework.
0
Does Powershell have you tied up in knots?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

 
LVL 2

Expert Comment

by:peeldog
ID: 17903139
Your first problem is for how to keep the connection open for long enough to get the transfer done, and your second one for how to resume from where they left off when a connection closes for whatever reason (would suck to get 499Mb then loose your wireless connection for a few secs when uploading).  I'd suggest looking at various transport mechinisms including HTTP and FTP but there may be others like RSYNC or write your own.

One thing I have used in the past is to get the user to upload using ftp, then when they have finished get them to push a button on a webpage that will move or copy the files out of the ftp area and process them as needed.  I also provide a HTTP upload web form too.   If they are using IE, you can provide them with a link in this form:

ftp://[username]:[password]@[domain]

and they will be able to drop the files in to that window (I'm not sure if this works on a mac though).

Good ftp clients may allow you to resume from where you left off.

The only other option I know of would be to write your own client server app.  Not the sort of thing I can cut and paste here.  I don't think using a brower doing HTTP POST will not be reliable enough for 500Mb and multiple files.

Al.

0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 17904849
Peeldog: That method with the username:password is alas being discontinued. The last place I have seen it work in in Mozilla
0
 
LVL 15

Author Comment

by:deepaknet
ID: 17953980
I got it through myself using PHP and a judicious balance of configuration using MemoryLimit and PostMaxSize. It works for a good limit of 500 MB.

0
 
LVL 15

Author Comment

by:deepaknet
ID: 17953983
A Delete Request has been raised to CustomerSupport.
0
 
LVL 15

Author Comment

by:deepaknet
ID: 18001302
DarthMod,

The solution is configurable with PHP. With Windows and PHP, you can have the following settings to work upto 100 MB. (max_input_time and maximum_execution_time)

Of course, you need to ensure a correct combination of RAM size tobe allowed besides isolating the application pool.
0
 

Accepted Solution

by:
PashaMod earned 0 total points
ID: 18012804
Closed, 250 points refunded.
PashaMod
Community Support Moderator
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

What is Node.js? Node.js is a server side scripting language much like PHP or ASP but is used to implement the complete package of HTTP webserver and application framework. The difference is that Node.js’s execution engine is asynchronous and event…
I found this questions asking how to do this in many different forums, so I will describe here how to implement a solution using PHP and AJAX. The logical flow for the problem should be: Write an event handler for the first drop down box to get …
The viewer will receive an overview of the basics of CSS showing inline styles. In the head tags set up your style tags: (CODE) Reference the nav tag and set your properties.: (CODE) Set the reference for the UL element and styles for it to ensu…
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…

831 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question