Jeg har et problem med store filer, når der uploades til .net serveren. Jeg har sat max. størrelse til 12 MB og øjensynlig går det godt med at uploade.
Men efter af selve uploaden ser ud til at være færdig, kommer der alligevel en fejl, som siger, at filen ikke er fundet.
Jeg har set at andre har samme problem, men mangler altså et svar
Det er i princippet alle filer, som kan uploades til serveren med input type=file og som modtages som HttpPostedFile.
Er lavet på en intranet, og når man sidder på lokalnettet er der ingen problemer heller ikke når filen har en størrelse på de 12MB, som jeg har tilladt i web.config.
Men når brugerne benytter siden hjemmefra går det altså galt, også selv om jeg har sat executionTimeout til en helt uhyrlig stor værdi.
Det ser som sagt ud til, at at selve uploadet virker, i hvert tilfælde arbejder routeren på højtryk, men når trafikken ophører så afsluttes der med en "Side ikke fundet"-fejl (ikke den rigtige .net fejl side, men mere én som ligner gammeldags asp-fejlmeldinger).
Jeg tror, at det har noget med en timeout at gøre, for jo langsommere forbindelse man har, des mindre størrelse på filen lykkes det at uploade.
Okay, der kan man bare se vi snakker om ASP.NET og upload fra en hjemmeside. .NET frameworket er meget mere end ASP.NET og derfor bliver man altså nødt til at forklare sig lidt tydeligere.
Har du tjekket at der ikke er sat en maxRequestLength i HttpRuntime taget i din machine.config som vil gøre at din web.config maxRequestLength bliver ignoreret.
Tjek evt. også hvad executionTimeout i HttpRuntime er sat til.
12288 Bytes er ikke nok til en 12 MB fil, du skal huske at 1MB ~ 1024 Bytes og at der også skal være plads til det af requestet der ikke er en del af filen.
Du mangler at sætte responseDeadlockInterval til samme høje værdi som executionTimeout. Men det løser ikke et helt andet og grundlæggende problem; din server vil forbruge mere end filens størrelse i ram under upload, og ikke frigive alt ram igen, pga hvad der ligner en memory leak fejl. 4. post i denne tråd fortæller om dette: http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=95255
Jeg har selv arbejdet på dette problem i månedsvis, og i øjeblikket tæt på en løsning. Som du også selv har erfaret, kan problemet ikke løses ved at checke ContentLength, som moonduck foreslår. Upload'en skal gribes på et langt tidligere stadie, hvilket kræver roderi med frameworkets HttpWorkerRequest. Vi er nogle stykker der diskuterer problemet på følgende tråd (mit alias er ups101):
Mange tak, jeg vil følge det videre forløb i diskussionen om dette basale problem - man skulle da næsten synes, at .net teamet kunne komme op med en løsning.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.