Large file upload - asp.net

Im building a MVC 5 app, where users can upload images. I ran into the filsize cap of 4mb. the solution I can read is to add this to web.config:
<system.web>
<httpRuntime executionTimeout="240" maxRequestLength="20480" />
</system.web>
but when doing so, the site crashes with an configuration error:
The requested page cannot be accessed because the related configuration data for the page is invalid.
Removing the line and the site is running again.
Is there an alternative or workarround?

For IIS7 or later, add this line to webconfig
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="52428800" /> <!--50MB-->
</requestFiltering>
</security>
</system.webServer>
Or open IIS GUI

Related

Why in upload time, other pages were be slow or can not be open?

I used this code on web.config for RequstLength of upload page:
<location path="Upload.aspx">
<system.web>
<httpRuntime executionTimeout="60000" maxRequestLength="1572864" requestPathInvalidCharacters="" requestValidationMode="2.0" relaxedUrlToFileSystemMapping="true" enableVersionHeader="false"/>
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1610612736"/>
</requestFiltering>
</security>
</system.webServer>
</location>
and when I open a page of my site at the time of upload,pages dont open, till upload finishes.
How can I solve this issue?
It's related to enableSessionState of requested page which I send file to upload.
When I used it as enableSessionState="ReadOnly" in #page directive level, it solved.
https://forums.asp.net/t/2105020.aspx?Why+in+upload+time+other+pages+were+be+slow+or+can+not+be+open+

how to exceed maximum iis post request Limit?

i have an asp web application, and a service witch people use to send large chunks of date trough HTTP POST.
bu Data riches many megabytes rejects the request and return nothing.
i tried to use this but didn't work. to change the limit to 10 megabytes.
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="10000000" />
</requestFiltering>
</security>
</system.webServer>
Add this to your web.config, too
<configuration>
<system.web>
<httpRuntime maxRequestLength="1000000" />
</system.web>
</configuration>
Check this link for more info: http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits

asp.net file upload The connection to the server was reset while the page was loading

When I am trying to upload file of 32MB, firefox is showing following error on page.
" The connection was reset.
The connection to the server was reset while the page was loading."
I have tried foll. solutions -
1 . in <system.web>
<httpRuntime maxRequestLength="2000000000" executionTimeout="999999"/>
2 . in <system.webserver>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2000000000" />
</requestFiltering>
</security>
and
<compilation defaultLanguage="c#" debug="false" />
but still getting same error.
I think problem is related to "executionTimeout". Application is not setting this timeout for request.
Finally problem resolved...
We need to keep both tags in config file.
i.e.
<httpRuntime maxRequestLength="2000000000" executionTimeout="999999"/>
and
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2000000000" />
</requestFiltering>
</security>
Actually I was commenting one line and testing with another. :)
First: Notice that maxRequestLength is in KB whereas maxAllowedContentLength is in bytes
So you're just allowing 1MB... Increase your maxAllowedContentLength, for instance:
<requestLimits maxAllowedContentLength="2000000000" />
Second:
Try a higher execution time such as executionTimeout="999999"
I have solved the issue and set:
<httpRuntime maxRequestLength="2097151" executionTimeout="999999"/> inside tag
in the web.config file.
if maxRequestLength="2000000000" does not support then use the range 0-2097151
Hope this helps.

IIS7 - The request filtering module is configured to deny a request that exceeds the request content length

I want to upload images, it works fine on my machine but when I put my website on IIS7 server for public I can't upload anything.
Error
The request filtering module is configured to deny a request that
exceeds the request content length.
Most likely causes
Request filtering is configured on the Web server to deny the request
because the content length exceeds the configured value.
Things you can try
Verify the configuration/system.webServer/security/requestFiltering/requestLimits#maxAllowedContentLength
setting in the applicationhost.config or web.config file.
system.webServer in Web.config
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1048576" />
</requestFiltering>
</security>
</system.webServer>
As you can see I set my maxAllowedContentLength to 1gb. Restarted my website and still getting this error. I made an /uploads/ folder on my file system where it suppose to be as well. Have no idea what causes this error and why I can't upload images.
<configuration>
<system.web>
<httpRuntime maxRequestLength="1048576" />
</system.web>
</configuration>
From here.
For IIS7 and above, you also need to add the lines below:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
</system.webServer>
The following example Web.config file will configure IIS to deny access for HTTP requests where the length of the "Content-type" header is greater than 100 bytes.
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits>
<headerLimits>
<add header="Content-type" sizeLimit="100" />
</headerLimits>
</requestLimits>
</requestFiltering>
</security>
</system.webServer>
</configuration>
Source: http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits
I had similar issue, I resolved by changing the requestlimits maxAllowedContentLength ="40000000" section of applicationhost.config file, located in "C:\Windows\System32\inetsrv\config" directory
Look for security Section and add the sectionGroup.
<sectionGroup name="requestfiltering">
<section name="requestlimits" maxAllowedContentLength ="40000000" />
</sectionGroup>
*NOTE delete;
<section name="requestfiltering" overrideModeDefault="Deny" />

location tag totally ignored

I am developing asp.net application where there is need to upload files to http server. I am stuck with upload limit 4 MB. I can change it with creating following section in web.config file:
<configuration>
<system.web>
<httpRuntime maxRequestLength="204800" executionTimeout="600" />
</system.web>
</configuration>
Problem is that this setting cannot be customized by moving these same lines to location tag:
<configuration>
<location path="ftp_upload.aspx">
<system.web>
<httpRuntime maxRequestLength="204800" executionTimeout="600" />
</system.web>
</location>
</configuration>
IIS server just completely ignores this setting without issuing any warning or error message. I cannot understand that because in many other only minor errors in web.config it throws exceptions (for example when I forgot to set allowOverride parameter to true in parent web.config).
Try adding this to your config in the same location entry
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2048000000"/>
</requestFiltering>
</security>
</system.webServer>
Note that the units are in bytes rather that kbyes... or something like that.

Resources