ASP.NET requests that have lots of form keys, files, or JSON payload receive an error response from the server. The Application log on the server has a Warning entry with a Source that is a specific version of ASP.NET, and an Event ID of 1309. The event log contains one of the following messages:

Message 1:

Application information:
    Application domain: /LM/W3SVC/1/ROOT/<App Domain>
    Trust level: Medium
    Application Virtual Path: <VDIR Path>
    Application Path: <App Path>
    Machine name: <Machine Name>
Process information:
    Process ID: 0001
    Process name: w3wp.exe
    Account name: IIS APPPOOL\DefaultAppPool
Exception information:
    Exception type: HttpException
    Exception message: The URL-encoded form data is not valid.
   at System.Web.HttpRequest.FillInFormCollection()
   at System.Web.HttpRequest.get_Form()
   at System.Web.HttpRequest.get_HasForm()
   at System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
   at System.Web.UI.Page.DeterminePostBackMode()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)


Message 2:

Application information:
    Application domain: /LM/W3SVC/1/ROOT/<App Domain>
    Trust level: Medium
    Application Virtual Path: <VDIR Path>
    Application Path: <App Path>
    Machine name: <Machine Name>
Process information:
    Process ID: 0001
    Process name: w3wp.exe
    Account name: IIS APPPOOL\DefaultAppPool
Exception information:
   Exception type: InvalidOperationException
    Exception message: Operation is not valid due to the current state of the object.
   at System.Web.HttpRequest.FillInFilesCollection()
   at System.Web.HttpRequest.get_Files()
   at FileUpload.Page_Load(Object sender, EventArgs e)
   at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
   at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
   at System.Web.UI.Control.OnLoad(EventArgs e)
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint

 

to resolve this problem, you should change your web.config

<configuration>
  <appSettings>
    <add key="aspnet:MaxHttpCollectionKeys" value="5000" />
  </appSettings>
</configuration>