I am using the PUT verb to send JSON to a MVC controller. When I reach a certain limit I get a 500 error. If I scale back the JSON I send, then it sends just fine… Does anyone know of a configuration in the web.config that will allow a larger amount of JSON to be passed to my application?
Here is Solutions:
We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.
Here is the answer… My JSON object was quite large so .NET wouldn’t allow it to pass due to a “security feature” The default is 2000, so I bumped it and it worked perfectly.
<add key="aspnet:MaxJsonDeserializerMembers" value="5000"/>
Approach – 1
<configuration> <system.web.extensions> <scripting> <webServices> <jsonSerialization maxJsonLength="50000000"/> </webServices> </scripting> </system.web.extensions> </configuration>
Approach – 2
<location path="File Path or FileHandler.ashx"> <system.web> <httpRuntime executionTimeout="your value" maxRequestLength="Your value" /> </system.web> </location>
Using this approach, we can set the limits for specific page and not for the complete application.
Approach – 3
<httpRuntime targetFramework="Your version" maxRequestLength="Your value" />
Using this approach, we can set the limits for complete application.
Check the maxRequestLength in your web.config. If the data exceeds maxRequestLength, 500 status is returned.
<httpRuntime targetFramework="4.5" maxRequestLength="XXX" />
Note: if maxRequestLength isn’t specified. Default value is 4MB.
If that doesn’t work, try IIS’s Request Limits. Documentation however says that 404 status should be returned.
Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂