How to Upload Large files in Application Folder - c#

In my application I'm uploading large audio files (upto 100MB). For that in my web.config file I have added:
<httpRuntime executionTimeout="90" maxRequestLength="150000" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" enableVersionHeader="true" />
With this code I'm uploading files successfully into my application folder. But when deployed in IIS and published locally, the files are not uploading and I'm getting this Error. How can i solve this issue?

In addition to the check specified in the httpRuntime node, I believe microsoft is now also checking the content length as part of the security filtering. You may be able to get past the size limits by adding the following node to your web.config
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="100000000" />
</requestFiltering>
</security>
</system.webServer>

Related

404 Error - Uploading file size greater than 30 MB

In our Web API, we can not upload fize size which is more than 30MB. We used to get 404 Error such as "404 - File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable."
By Googling and seeing various post, I tired the below changes in my config file:
Web.Config:
<system.web>
<httpRuntime maxRequestLength="204800" timeout="7200" />
</system.web>
<requestFiltering>
<requestLimits maxAllowedContentLength="209715200" maxQueryString="2097151" maxUrl="10999"/>
</requestFiltering>
But still, I could not upload file which is more than 30MB size. But the same code is working fine to upload file which is below 30 MB.
Any thing that i had missed here?
1.) Open IIS Manager.
2.) Select the website that you want to configure.
3.) Make sure you are in Features View per the button at the bottom of the manager.
4.) Select Requests Filtering and open it by double-clicking the icon. The Request Filtering pane displays.
5.) From the Actions pane on the right hand side of the screen click Edit Feature Settings... link. The Edit Request Filtering Settings window displays.
6.) In the Request Limits section, enter the appropriate Maximum allowed content length (Bytes) and then click the OK button.
Restart IIS.
This worked for me :)
Can you change your web.config to use system.webServer and security?
<configuration>
<system.web>
<httpRuntime maxRequestLength="204800" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="209715200" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
Putting in what worked for me.
I had to make two changes:
update web.config with following settings:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="209715200" />
</requestFiltering>
</security>
</system.webServer>
But using just this was not working for me. I had to add another attribute to API Controller to make it work.
[HttpPost]
//[DisableRequestSizeLimit]
[RequestSizeLimit(70_000_000)] //Files sizes upto 70 MB are allowed
My setup was Blazor WebAssembly template with ASP Hosted option. Hope this helps somebody.

AsyncFileUpload Content Security Policy Directive

I am trying to upload a file to an application i have built using the AsyncFileUpload part of the AjaxToolKit. The file is a 50mb ZIP file, when uploading i receive the following popup:
When i click OK i get the following box
If i then go into Developer tools i get the following error message in the console tab of chrome
The value for Content Security Policy directive 'object-src' contains an invalid character
Any help would be appreciated
It looks like you need to modify your Web.config like in this answer:
<configuration>
<system.web>
<httpRuntime maxRequestLength="1048576" />
</system.web>
</configuration>
or for IIS 7 or later:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
</system.webServer>

Unable to upload files into Godaddy server

When i try to upload the Image to the Godaddy , i'm only able to upload lesser size of images .
I have already used this in my web-config , but still i am unable to upload the larger files
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
In you web config you need to add maxRequestLength in System.web along with the above config
Ex:
<httpRuntime maxRequestLength="600000" />

maxAllowedContentLength override

I have the following setting in my root web.config:
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="20000000" />
</requestFiltering>
</security>
I am trying to limit the size of POST requests to my pages to 1 KB in my web application. However, I want to do it without changing the above setting. Therefore, in web.config under Views folder, I added the below lines:
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1000"/>
</requestFiltering>
</security>
Which doesn't work, i.e my application still accepts POST requests with a large body. I tried the below settings unsuccessfully:
Using <location> tag (with allowOverride=true)
Timeouts and maxRequestLength attribute
My application still accepts requests with a large POST body (upto 20 MB - as specified in root web.config). Is there any workaround for this? Is it possible to do it programatically? I searched everywhere but couldn't find any examples.
Try this: Add under appSettings
<add key="aspnet:MaxJsonDeserializerMembers" value="1024" />

How to upload file with the 10GB+ size in ASP.NET C#

I am trying to upload file with size more than 10GB+ and there is multiple files that i want to upload at the server.
I made some changes in Web.config to upload large files.
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime executionTimeout="6000000" maxRequestLength="2147483647"/>
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483647" />
</requestFiltering>
</security>
</system.webServer>
But it only support the file size up to 2GB. I do too much research but I can not get anything that help me to upload 10GB+ file size.
I read some article that said that the maximum file size limit is 2GB
Maximum value of maxRequestLength?
IIS 7 httpruntime maxRequestLength limit of 2097151
https://blogs.msdn.microsoft.com/prashant_upadhyay/2011/07/12/large-file-upload-issue-in-asp-net/
I found some hacks that I slice the file at the client side (browser) and upload that all the slice at the server and after that i merge all that slice to single file.
But this may be wrong idea to do that, If some slice of file is failed to upload or missed so file may be corrupted.
I don't want to implement the Slice and Upload and Merge file technique to upload large file.
There is any another way to do the Upload Larger files (10GB+ size) with the ASP.NET and C#.
Thanks.
only use this
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime executionTimeout="6000000" maxRequestLength="10485760"/>
</system.web>
remove below code from web.config
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483647" />
</requestFiltering>
</security>
and 10gb = 10485760 kb

Categories