L'opération n'est pas valide en raison de l'état actuel de l'objet. Description: une exception non gérée s'est produite lors de l'exécution de la requête Web en cours. Consultez la trace de la pile pour plus d’informations sur l’erreur et son origine dans le code.
Détails des exceptions: System.InvalidOperationException: l'opération n'est pas valide en raison de l'état actuel de l'objet.
Erreur de source:
Une exception non gérée a été générée lors de l'exécution du fichier demande web en cours. Informations concernant l'origine et l'emplacement de l'exception peut être identifiée à l'aide de la trace de pile d'exceptions ci-dessous.
Trace de la pile:
[InvalidOperationException: L'opération n'est pas valide en raison de l'actuel état de l'objet.]
System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded () +2692302 System.Web.HttpValueCollection.FillFromEncodedBytes (Byte [] octets, Codage de codage) +61
System.Web.HttpRequest.FillInFormCollection () +148[HttpException (0x80004005): les données de formulaire codées en URL ne sont pas valides.] System.Web.HttpRequest.FillInFormCollection () +206
System.Web.HttpRequest.get_Form () +68
System.Web.HttpRequest.get_HasForm () +8735447
System.Web.UI.Page.GetCollectionBasedOnMethod (Boolean dontReturnNull) +97 System.Web.UI.Page.DeterminePostBackMode () +63 System.Web.UI.Page.ProcessRequestMain (Boolean IncludeStagesBeforeAsyncPoint, Booléen includeStagesAfterAsyncPoint) +133
Informations de version: Microsoft .NET Version version: 2.0.50727.3634; Version ASP.NET: 2.0.50727.3634 `
Le problème se produit parce que le numéro de limite de la mise à jour de sécurité Microsoft MS11-100 est de clés dans la collection de formulaires lors de la demande HTTP POST. Pour soulager ce problème, vous devez augmenter ce nombre.
Cela peut être fait dans votre application Web.Config dans le
<appSettings>
section (créez la section directement sous<configuration>
si elle n'existe pas). Ajoutez 2 lignes semblables aux lignes ci-dessous au section:<add key="aspnet:MaxHttpCollectionKeys" value="2000" /> <add key="aspnet:MaxJsonDeserializerMembers" value="2000" />
L'exemple ci-dessus définit la limite à 2000 clés. Cela soulèvera le limitation et l'erreur devrait disparaître.
Cela peut arriver si vous appelez
.SingleOrDefault()
sur un IEnumerable avec 2 ou plusieurs éléments.
Je sais qu'une réponse a déjà été acceptée pour ce problème, mais quelqu'un a demandé dans les commentaires s'il y avait une solution qui pourrait être faite en dehors de web.config. J'ai eu un ListView produisant exactement la même erreur et définir EnableViewState sur false a résolu ce problème pour moi.