J'avais une page aspx qui fonctionnait bien, mais du coup j'obtiens l'erreur "L'opération n'est pas valide en raison de l'état actuel de l'objet." chaque fois qu'une publication est effectuée.
La trace de pile est:
à System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded ()
à System.Web.HttpValueCollection.FillFromEncodedBytes (Byte [] octets, encodage)
à System.Web.HttpRequest.FillInFillection ()
Quelqu'un peut-il aider?
Réponses:
Quelqu'un a publié plusieurs champs de formulaire sur votre page. Le nouveau maximum par défaut introduit par la récente mise à jour de sécurité est 1000.
Essayez d'ajouter le paramètre suivant dans le
<appsettings>
bloc de votre web.config . dans ce bloc, vous maximisez les valeurs MaxHttpCollection, cela remplacera les valeurs par défaut définies par .net Framework. vous pouvez modifier la valeur en conséquence selon vos besoins de formulairePour plus d'informations, veuillez lire cet article. Pour plus d'informations sur le correctif de sécurité de Microsoft, vous pouvez lire cet article de la base de connaissances
la source
Je n'ai pas appliqué la pagination sur ma grille et elle s'étend à plus de 600 enregistrements (avec case à cocher, boutons, etc.) et la valeur de 2001 n'a pas fonctionné. Vous pouvez augmenter la valeur, disons 10000 et tester.
la source
Pour ASP.NET 1.1, cela est toujours dû au fait que quelqu'un publie plus de 1000 champs de formulaire, mais le paramètre doit être modifié dans le Registre plutôt que dans un fichier de configuration. Il doit être ajouté en tant que DWORD nommé MaxHttpCollectionKeys dans le registre sous
pour les éditions 32 bits de Windows et
pour les éditions 64 bits de Windows.
la source
Si votre trace de pile ressemble à ce qui suit, vous envoyez une énorme charge d'objets json au serveur
Pour la résolution, veuillez mettre à jour votre configuration Web avec la clé suivante. Si vous ne parvenez pas à obtenir la trace de la pile, veuillez utiliser fiddler . Si cela ne vous aide toujours pas, essayez d'augmenter le nombre à 10000 ou quelque chose du genre
Pour plus de détails, veuillez lire cet article de Microsoft kb
la source