Toon posts:

[IIS/.Net] Large file upload

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste tweakers,

Ik heb een applicatie gemaakt waarmee mensen via HTTP bestanden kunnen uploaden. Erg leuk, maar nu zijn er mensen die bestanden van 20 MB op die manier willen uploaden en dat werkt niet.

Al snel gevonden dat je dit in de machine.config of in IIS kan aangeven (max upload limiet), ik heb het dan over een .NET ASPX applicatie.

Nu wordt de site alleen gehost door Vevida, die helaas voor mij het maximum upload alleen van 3 MB naar 5 MB willen zetten maar absoluut niet verder (wat ik wel raar vind, ik betaal voor elke MB die ik upload... raar dat ze dat dan willen beperken???).

Best wel jammer dus. Nou zoek ik dus een manier om dat bestand misschien in kleine stukken te uploaden. Het probleem lijkt alleen dat het al fout gaat voordat ik weer server side kom, dus er zowieso iets mee kan doen.

Iemand enig idee of dit softwarematig toch op te lossen is?

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 23-04 16:45

TheBorg

Resistance is futile.

Voor zover ik weet is dat onmogelijk. Het plaatje wordt met een POST geupload, en je kan er pas iets mee doen als dat klaar is... Ook Javascript biedt geen oplossing, omdat je simpelweg niet genoeg rechten hebt.

  • mrFoce
  • Registratie: Augustus 2004
  • Laatst online: 30-04 16:44
Java applet gebruiken ?

1 sec google: http://www.activeup.com/products/components/activeupload/

[ Voor 62% gewijzigd door mrFoce op 02-09-2005 20:39 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Je kan proberen of het mogelijk is een applett te maken die de file opdeelt in chunks (of misschien er een spanned zip file van maakt), en die één voor één door de applett laten uploaden. Echter, het HTTP protocol is AFAIK helemaal niet bedoeld voor zulke grote uploads, dan kun je beter gebruik maken van FTP. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

In Apache kun je lokaal (in het script zelf) instellingen in de config file veranderen overrulen, misschien kan dat bij ISS ook?

Ik ben het wel met -NMe- eens dat je ze beter een simpel FTP accountje kunt geven. Kunnen ze zelfs via IE doen (in het geval dat ze wat minder begaafd zijn met computers ;)), in een Explorer interface.

[ Voor 67% gewijzigd door Verwijderd op 02-09-2005 20:46 ]


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:39
Ik heb een applicatie gemaakt
Je kan dus in plaats van HTTP waarschijnlijk ook wel een FTP verbinding maken?

Verwijderd

Topicstarter
Bedankt voor de tips!. We hebben juist een applicatie gemaakt waarmee wij een gebruiker zelf het recht kunnen geven om zijn infobron in te richten, hij/zij kan hier gebruikers en groepen aanmaken, rechten geven, etc. Er zit ook een uitgebreid zoek- systeem in om de bestanden weer op te sporen en de bestanden zelf worden na het uploaden geencrypt, etc. Het heeft al met al dus veel meer dan een gewone FTP site. Daarbij zitten er een hoop gebruikers die nog nooit FTP hebben gezien en toch overal met internet die bestanden willen benaderen.

Een JAVA applet kan volgens mij ook niet omdat je dan wel JAVA support op de PC geinstalleerd moet hebben. Dit kunnen we het merendeel van de gebruikers ook niet aan doen. Als IIS nou net als Apache die instellingen kon overrulen dan zou dat wel cool zijn... Vooralsnog zie ik maar 2 mogelijkheden en dat is 1. zelf hosten en 2. een betere provider zoeken.

[ Voor 6% gewijzigd door Verwijderd op 02-09-2005 22:25 ]


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:39
Ik weet niet of je een goede klant bent maar anders zou ik een soort van dreiging geven dat je anders gaat verhuizen naar een andere host. Misschien worden ze dan iets welwillender?

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 30-04 04:38
-NMe- schreef op vrijdag 02 september 2005 @ 20:40:
Echter, het HTTP protocol is AFAIK helemaal niet bedoeld voor zulke grote uploads, dan kun je beter gebruik maken van FTP. :)
Mwoach; HTTP is een vrij symmetrisch protocol. Voor grote bestanden is het niet echt bedoeld, maar het wordt toch regelmatig gebruikt om bestanden van tientallen megabytes mee te downloaden, en er is geen technische reden waarom je die dan ook niet zou kunnen uploaden.

De beperking is er alleen om misbruik te voorkomen: als de client kan bepalen hoeveel data 'ie gaat uploaden kan 'ie de hele harde schijf (of misschien zelfs het geheugen) volplempen en dat is natuurlijk niet de bedoeling.

Verwijderd

Topicstarter
@SoulTaker: Dat zou toch geen probleem moeten zijn? Ik heb een domein contract waarin ik 500 MB aan data op mijn webspace mag verstoken. Als mijn applicatie die dus vol upload dan wordt dat door dat quotum beperkt, tenzij ik ze meer betaal en dus meer MB ter beschikking heb.

Het lijkt mij ook dat het HTTP protocol prima in staat is om meer MB te uploaden... alleen weet ik niet hoe ik om die restrictie heen kom.

@djluc: We hebben ongeveer 35 klanten bij hun gehost, maar pas bij de 50 stel je echt wat voor :-(. Ze hebben hun limiet van 3 naar 5 mb verhoogt, maar daar blijft het blijkbaar bij.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op vrijdag 02 september 2005 @ 22:24:
Bedankt voor de tips!. We hebben juist een applicatie gemaakt waarmee wij een gebruiker zelf het recht kunnen geven om zijn infobron in te richten, hij/zij kan hier gebruikers en groepen aanmaken, rechten geven, etc. Er zit ook een uitgebreid zoek- systeem in om de bestanden weer op te sporen en de bestanden zelf worden na het uploaden geencrypt, etc. Het heeft al met al dus veel meer dan een gewone FTP site. Daarbij zitten er een hoop gebruikers die nog nooit FTP hebben gezien en toch overal met internet die bestanden willen benaderen.
Een applet kan ook met FTP werken hoor. ;)
Een JAVA applet kan volgens mij ook niet omdat je dan wel JAVA support op de PC geinstalleerd moet hebben. Dit kunnen we het merendeel van de gebruikers ook niet aan doen.
Waarom niet? Ze krijgen eenmalig de melding dat ze wat moeten installeren, klikken dan op "ja", wachten even en hoppa, ze kunnen aan de slag. Lijkt me niet zo'n probleem?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:39
Je kan toch niet per ongeluk dit middels een htaccess-achtig bestandje instellen? Kent IIS dit soort configuratiebestandjes per map niet? Of kan je dit sowieso niet met een htaccess instellen?

Verwijderd

Topicstarter
@NMe, Een groot deel van de gebruikers zitten achter volledig door systeembeheer dichtgetimmerde PC's waarop ze zelf geen recht hebben om ActiveX of Java addin's etc te installeren. Daarbij weet ik ook nog eens veel te weinig van Java om dat goed te kunnen onderhouden.

@djluc, volens mij is er wel iets met htAccess bestandjes te doen in IIS, ik heb daar alleen 0 ervaring mee, maar goede tip die ik zeker uit ga zoeken.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 27-04 18:17

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op vrijdag 02 september 2005 @ 22:39:
@SoulTaker: Dat zou toch geen probleem moeten zijn? Ik heb een domein contract waarin ik 500 MB aan data op mijn webspace mag verstoken. Als mijn applicatie die dus vol upload dan wordt dat door dat quotum beperkt, tenzij ik ze meer betaal en dus meer MB ter beschikking heb.
Het is ook niet de diskspaceruimte die een probleem is, maar de (interne) geheugenruimte, afaik. Uploaden vormt initieel ook een belasting voor het geheugen, waardoor ook andere klanten een probleem kunnen krijgen. Daar ligt het probleem. :)
The standard ASP.NET classes cache the entire upload in memory. Not only does this have performance implications but it also inherently limits the size of ongoing uploads. When ASP.NET memory use reaches 60% of available RAM the whole of ASP.NET is restarted.

The time that large uploads takes can create a vicious cycle in which ASP.NET uses excessive amounts of memory. Just assume you're getting ten new visitors every minute. Each visitor uploads one 20 MB file which takes 20 minutes to complete. This means that there are a total of 200 ongoing uploads - each using an average of 10 MB of RAM - a total of 2 GB. Even if your server has 2 GB of RAM ASP.NET will restart after only 1.2 GB has been used and that doesn't even allow for other use by ASP.NET.

[ Voor 43% gewijzigd door gorgi_19 op 04-09-2005 13:14 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 27-04 18:17

gorgi_19

Kruimeltjes zijn weer op :9

djluc schreef op zaterdag 03 september 2005 @ 01:01:
Je kan toch niet per ongeluk dit middels een htaccess-achtig bestandje instellen? Kent IIS dit soort configuratiebestandjes per map niet? Of kan je dit sowieso niet met een htaccess instellen?
IIS kent geen .htaccess. Wellicht kan je de Machine.Config in je web.config wat overriden, maar met een expliciet verbod van je hoster ga je daar niet gelukkig van worden. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Bedankt voor de info Gorgi! Ik snap nou waarom de provider hier helemaal niet zo blij mee zal zijn. De enige (nette) oplossing voor mijn probleem is dan waarschijnlijk ook om het bestand gelijkmatig up te loaden, maar ik ben bang dat ik daar geen grip op heb.

Verwijderd

Topicstarter
Huh... ik heb de oplossing... maar meteen weer een nieuwe vraag. Als je
<httpRuntime maxRequestLength="50000" /> In de <system.web> van je web.config plaatst dan mag je ineens 50MB tegelijkertijd uploaden (je kan elke waarde invullen die je wilt).

Ik kan hiermee inderdaad de provider instelling overriden. Wat mij meteen weer de volgende vraag geeft... omdat als al mijn klanten ineens 50 MB tegelijk gaan uploaden, de provider waarschijnlijk een memory probleem heeft. Mag je dit dan ook wel zomaar doen? Ik heb mijn contract doorgelezen, maar daar staat nergens dat ik via HTTP maar tot max 5 MB gelijktijdig mag uploaden. Wel gaf de provider al aan absoluut niet meer dan 5MB toe te gaan staan.

Momenteel override ik dus naar 50MB, helemaal netjes vind ik het alleen nog niet.

  • Onno
  • Registratie: Juni 1999
  • Niet online
Ik gok dat als je provider daar achter komt, hij gewoon instelt dat je die setting niet meer mag overriden. Ik zou dus een andere oplossing proberen te vinden. :)

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 27-04 18:17

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op zondag 04 september 2005 @ 19:11:
Huh... ik heb de oplossing... maar meteen weer een nieuwe vraag. Als je
<httpRuntime maxRequestLength="50000" /> In de <system.web> van je web.config plaatst dan mag je ineens 50MB tegelijkertijd uploaden (je kan elke waarde invullen die je wilt).

Ik kan hiermee inderdaad de provider instelling overriden. Wat mij meteen weer de volgende vraag geeft... omdat als al mijn klanten ineens 50 MB tegelijk gaan uploaden, de provider waarschijnlijk een memory probleem heeft. Mag je dit dan ook wel zomaar doen? Ik heb mijn contract doorgelezen, maar daar staat nergens dat ik via HTTP maar tot max 5 MB gelijktijdig mag uploaden. Wel gaf de provider al aan absoluut niet meer dan 5MB toe te gaan staan.

Momenteel override ik dus naar 50MB, helemaal netjes vind ik het alleen nog niet.
Ik gok dat een hoster met problemen met je website je in eerste instatie een waarschuwing geeft; mocht het direct problemen geven voor andere klanten, dan zal hij niet schromen om je site op zwart te gooien, zeker als je te veel memory gebruikt. Of stelt je site anders in, waardoor die alleen 'zichzelf opblaast'. In beide gevallen wordt je er echter niet gelukkig van; die limiet is er niet voor niets. Waarom schaf je dat component anders niet aan?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Ik denk dat je misschien beter kan gaan nadenken over een dedicated machine voor jouzelf, zodat je zelf als enige te maken hebt met de gevolgen van wat jouw klanten doen.

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06-2025

Varienaja

Wie dit leest is gek.

Verwijderd schreef op zondag 04 september 2005 @ 19:11:
Ik kan hiermee inderdaad de provider instelling overriden. Wat mij meteen weer de volgende vraag geeft... omdat als al mijn klanten ineens 50 MB tegelijk gaan uploaden, de provider waarschijnlijk een memory probleem heeft. Mag je dit dan ook wel zomaar doen? Ik heb mijn contract doorgelezen, maar daar staat nergens dat ik via HTTP maar tot max 5 MB gelijktijdig mag uploaden. Wel gaf de provider al aan absoluut niet meer dan 5MB toe te gaan staan.
Voor zover ik weet gaan die uploads niet naar het geheugen, maar naar disk. Ik heb zelf een webapplicatie in Java gemaakt, en de apache-tomcat server schrijft uploads gewoon in een temp-directory.

Het lijkt me sterk dat IIS alle upload in RAM gaat bijhouden.

Siditamentis astuentis pactum.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 27-04 18:17

gorgi_19

Kruimeltjes zijn weer op :9

Varienaja schreef op maandag 05 september 2005 @ 11:26:
[...]

Voor zover ik weet gaan die uploads niet naar het geheugen, maar naar disk. Ik heb zelf een webapplicatie in Java gemaakt, en de apache-tomcat server schrijft uploads gewoon in een temp-directory.

Het lijkt me sterk dat IIS alle upload in RAM gaat bijhouden.
ASP.Net houdt het bij, niet IIS. En Java != .Net . Zie onder andere ook de link naar die andere site; er staan ook een aantal screenshots van een taskmanager tijdens een upload met de standaard .Net upload functionaliteit.

[ Voor 17% gewijzigd door gorgi_19 op 05-09-2005 11:29 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
Ik zelf heb ook ooit met dit probleem gezeten en ben uiteindelijk met slickupload aan de slag gegaan, dit werkt echt prima ook voor grotere files, dus mischien het proberen waard!

http://www.assistedsolutions.com/components/SlickUpload.aspx

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


Verwijderd

Topicstarter
We zijn bezig met een oplossing te programmeren die het op de manier oplost zoals SlickUpload dat waarschijnlijk ook doet. Waarschijnlijk is dat meteen de mooiste oplossing die ook geen problemen gaat geven. 50MB komt waarschijnlijk nooit voor, de meeste zullen altijd excel en word bestandjes uploaden, maar je zal er maar een gek tussen hebben zitten.
Pagina: 1