14.01.2017, Vladimír Klaus, navštíveno 3075x
Pokud potřebujete v ASP.NET aplikaci nahrávat na server data, nemusíte narazit na vůbec žádný problém. Stačí k tomu, aby soubory nebyly moc velké a měli jste rozumně rychlé připojení. Co znamená "moc velké" se nedá obecně říci, protože se může lišit v nastavení serveru, IIS apod.
Co ale dělat v případě, že soubory jsou velké a ještě třeba nemáte velmi rychlé připojení? A jak to poznáte? Že musíte situaci řešit, poznáte obvykle tak, že aplikace spadne, případně může nahlásit i ne úplně jasnou chybu. O tom, že byste se dozvěděli, jaký je tedy limit na velikost souboru nebo timeout si můžete nechat jen zdát.
Řešením je úprava web.config, kam se musí doplnit nové limitní velikosti a případně upravit i čas, třeba tak jak je ukázáno zde.
<configuration>
<system.web>
<!-- Timeout na 3600 vteřin (1 hodina), Upload až do 1000 MB
+ ještě nastavení webServer!!! -->
<httpRuntime executionTimeout="3600" maxRequestLength="1000000" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<!-- Tady také musí být těch 1000 MB -->
<requestLimits maxAllowedContentLength="1000000000" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
Údaj maxRequestLength slouží k nastavení maximální možné velikosti pro ASP.NET, údaj maxAllowedContentLength je totéž, jen je to pro IIS. Na co je ale třeba dát pozor je fakt, že první údaj se udává v kB a druhý v bajtech. Nastavení času executionTimeout se pak zadává ve vteřinách.
Zdroje: