2008-09-22 5 views
1

Je reçois l'erreur suivante chaque fois que je clique sur un contrôle postbackingHttp Exception générée lors de la validation ViewState

HttpException (0x80004005): Validation 
of viewstate MAC failed. If this 
application is hosted by a Web Farm 
or cluster, ensure that configuration 
specifies the same validationKey and 
validation algorithm. AutoGenerate 
cannot be used in a cluster. 

Je n'utilise une batterie de serveurs Web ou d'un serveur de cluster. J'ai même essayé de définir la propriété page EnableViewStateMac false mais il modifie le message d'erreur indiquant

The state information is invalid for 
this page and might be corrupted. 

Que pourrait-il se tromper?

Répondre

3

Il y a un article sur ce ici: http://blogs.msdn.com/tom/archive/2008/03/14/validation-of-viewstate-mac-failed-error.aspx.

Le problème de base est que votre page n'a pas terminé son chargement avant de procéder à la publication.

Quelques différentes solutions sont dans l'article ci-dessus: 1. Définissez EnableEventValidation false et ViewStateEncryptionMode Jamais 2. Marquez la forme comme les handicapés et puis l'activer dans le script une fois la charge terminée. 3. Remplacer l'événement de rendu de la page pour placer les champs masqués pour ViewState chiffré et la validation d'événement en haut du formulaire.

Mais le principal problème est que la charge de la page lente, ce qui devrait être fixé (si possible dès que possible). Il peut également être utile d'appliquer la solution 2 ci-dessus et il y aura toujours des utilisateurs satisfaits qui cliqueront plus vite que la page se charge, quelle que soit la vitesse de chargement :-).

/Andreas

0

J'ai rencontré le même problème avec un contrôle ASP.NET de génération personnalisée qui a été dynamique et rechargées à reconstruire sur tous les POST/GET demande. Ainsi, la page envoyant la requête POST n'était pas la même que celle qui recevait la réponse. Si vous utilisez des contrôles personnalisés ou de données, regardez de près comment ils se comportent sur un retour POST.

Questions connexes