IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Echec Validation MAC ViewState


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de PatStan17
    Homme Profil pro
    Chef de projet / Développeur
    Inscrit en
    Décembre 2008
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2008
    Messages : 307
    Par défaut Echec Validation MAC ViewState
    Bonjour,

    Contexte : ASPNET, C#, SQL Serveur

    J'ai déjà posé cette question mais je n'ai pas reçu de réponses qui m'ont parmis de résoudre ce problème ...

    J'ai sans cesse cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Erreur du serveur dans l'application '/'.
    --------------------------------------------------------------------------------
     
    Échec de la validation MAC Viewstate. Si cette application est hébergée par une batterie de serveurs ou un cluster, assurez-vous que la configuration <machineKey> spécifie le même validationKey et le même algorithme de validation. AutoGenerate ne peut pas être utilisée dans un cluster. 
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code. 
     
    Détails de l'exception: System.Web.HttpException: Échec de la validation MAC Viewstate. Si cette application est hébergée par une batterie de serveurs ou un cluster, assurez-vous que la configuration <machineKey> spécifie le même validationKey et le même algorithme de validation. AutoGenerate ne peut pas être utilisée dans un cluster.
     
    Erreur source: 
     
     
    [Aucune ligne source appropriée]
     
     
    Fichier source : App_Web_wiqg65u2.4.cs    Ligne : 0 
     
    Trace de la pile: 
     
     
    [HttpException (0x80004005): Impossible de valider les données.]
       System.Web.Configuration.MachineKeySection.GetDecodedData(Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Int32& dataLength) +289
       System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +140
     
    [ViewStateException: Viewstate non valide. 
    	Client IP: 62.160.164.95
    	Port: 35113
    	User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.2; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
    	ViewState: /wEPDwUJNjM0NzA0NDY1D2QWAmYPZBYCAgMPZBYGAgUPDxYCHgRUZXh0BRtVdGlsaXNhdGV1ciA6IFBhdHJpY2sgSkVBTiBkZAIHDw8WAh4HVmlzaWJsZWdkZAIJD2QWBAIDD2QWAmYPZBYEAgMPZBYCAgEPZBYQAgMPZBYCAgMPZBYCAgEPD2QWBB4Hb25mb2N1cwUddGhpcy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9JyceBm9uYmx1cgUkdGhpcy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9JyNmZmZmZmYnZAIED2QWAgIDD2QWAgIBDw9kFgQfAgUddGhpcy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9JycfAwUkdGhpcy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9JyNmZmZmZmYnZAIFD2QWAgIDD2QWAgIBDxAPFggeDERhdGFTb3VyY2VJRAUET2RzMR4NRGF0YVRleHRGaWVsZAUIVHlwZUxvbmceDkRhdGFWYWx1ZUZpZWxkBRNJZFR5cGVNYW5pZmVzdGF0aW9uHgtfIURhdGFCb3VuZGcWBB8CBR10aGlzLnN0eWxlLmJhY2tncm91bmRDb2xvcj0nJx8DBSR0aGlzLnN0eWxlLmJhY2tncm91bmRDb2xvcj0nI2ZmZmZmZicQFQUVQ2hvaXNpciB1bmUgdmFsZXVyLi4uGU1hbmlmZXN0YXRpb24gQ29tbWVyY2lhbGUYTWFuaWZlc3RhdG...]
     
    [HttpException (0x80004005): Échec de la validation MAC Viewstate. Si cette application est hébergée par une batterie de serveurs ou un cluster, assurez-vous que la configuration <machineKey> spécifie le même validationKey et le même algorithme de validation. AutoGenerate ne peut pas être utilisée dans un cluster.]
       System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +106
       System.Web.UI.ViewStateException.ThrowMacValidationError(Exception inner, String persistedState) +14
       System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +242
       System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) +4
       System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) +37
       System.Web.UI.HiddenFieldPageStatePersister.Load() +207
       System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +105
       System.Web.UI.Page.LoadAllState() +43
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6785
       System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +242
       System.Web.UI.Page.ProcessRequest() +80
       System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21
       System.Web.UI.Page.ProcessRequest(HttpContext context) +49
       ASP.accueil_aspx.ProcessRequest(HttpContext context) in App_Web_wiqg65u2.4.cs:0
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
     
     
     
     
    --------------------------------------------------------------------------------
    Informations sur la version : Version Microsoft .NET Framework :2.0.50727.3074; Version ASP.NET :2.0.50727.3074

    Je ne suis pas assez pointu pour comprendre ce message d'erreur et y remédier. Je trai^ne ça depuis trois mois et maintenant il faut que je trouve une solution car mon développement commence à devenier conséquent.

    J'ai trouvé des expliquations mais elles sont en anglais et malgré les outils de traduction cela ne m'apporte pas de réponse compréhensible à mon modeste niveau.


    Si qqn un tant soit peu pédagogue pouvait m'expliquer ou me fournir une solution...

    SVP ne me renvoyer pas vers les sites ou forum en anglais cela ne m'apporte rien....


    NOTA : Mon application n'est pas hébergée par une batterie de serveurs ou un cluster. J'utilise des gridviews ....


    MERCI D'AVANCE


    P.JEAN

  2. #2
    Membre éclairé Avatar de seb.49
    Profil pro
    ljgdfgdf
    Inscrit en
    Octobre 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : ljgdfgdf

    Informations forums :
    Inscription : Octobre 2002
    Messages : 291
    Par défaut
    Moi aussi j'ai eu ce problème sur une ferme de serveur mais je n'ai jamais trouvé la solution.

    Dernièrement j'ai lu un billet de blog intitulé [ASP.net] Erreur "Validation of viewstate MAC failed." de Sébastien FERRAND

    peut être que ca va t'aider.

  3. #3
    Membre éclairé Avatar de PatStan17
    Homme Profil pro
    Chef de projet / Développeur
    Inscrit en
    Décembre 2008
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2008
    Messages : 307
    Par défaut
    Merci Seb ...une nouvelle foi je me penche sur le problème ....C'est dingue le temps de perdu ... c'est à s'arrcahre les cheveux !!!! Il y a plusieurs bonne volontées qui ont répondu à mes questions précédentes ....mais aucune ne m'a apporté de solution...

    Merci

    P.JEAN

  4. #4
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Quelle taille font tes pages en ko? Mo ? Go ?

    Sinon quelle version du framework utilises tu? et quelle version est installée?

    Sur quelles pages intervient cette erreur? Suite à quelle évenement? Clic trop rapide ?

  5. #5
    Membre éclairé Avatar de PatStan17
    Homme Profil pro
    Chef de projet / Développeur
    Inscrit en
    Décembre 2008
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2008
    Messages : 307
    Par défaut ...
    Merci de te pencher sur mon problème ...

    J'utilise le Framework 3.5
    Selon mon hébergeur (Ikoula) le SP1 3.5 est installé sur la machine ou est installé mon site.


    Pour le reste je vais rassembler les infos que tu demandes et je te passe ça ...


    P.JEAN

  6. #6
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    tu as le probleme sur ton poste de developpement et sur sur le serveur de prod? ou juste sur l'un des deux?

  7. #7
    Membre éclairé Avatar de PatStan17
    Homme Profil pro
    Chef de projet / Développeur
    Inscrit en
    Décembre 2008
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2008
    Messages : 307
    Par défaut en ligne
    Suite à ta question, j'ai fais un test :

    J'ai ouvert 5 onglets sous ie ou j'ai ouvert 5 pages différentes de mon applis.
    J'ai laissé passé un demi-heure et à partir de celle-ci j'ai essayé de cliquer sur un lien qui m'emmene sur une autre page ou sur un bouton qui provoque par exemple par exemple un traitement. Résultat : 5 plantages avec le message : Échec de la validation MAC Viewstate. Si cette application est ...bla...bla

    Si je me reposisionne aux mêmes endroits et que je clique sans attendre cela marche sans problème...

    Je vais faire la même chose sur mon poste de développement sur le localhost pour voir ...


    P.JEAN

  8. #8
    Membre éclairé Avatar de PatStan17
    Homme Profil pro
    Chef de projet / Développeur
    Inscrit en
    Décembre 2008
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2008
    Messages : 307
    Par défaut Suite
    voilà j'ai fait la même chose sur mon poste de développement avec le serveur web local ...et le plantage ne semble pas se produire.Je dois m'absenter je laisse le site ouvert sur le local et je vais voir sur une période plus longue.

    Pour info, si je prend trois pages de mon site ou il y a plantage elles ont respectivemnt les taille (Hors fichier du code behind) :

    49ko, 25ko, 52 ko j'ai rapidement parcouru mes répertoire et je n'ai pas vu de fichier au dessu de 60 ko ...pour le moment....


    Nota : J'ai été sur ton blog ...ce que j'ai vu est clair et bien expliqué ..et intérressant .. je t'encourage donc à ....continuer ()

    P.JEAN

  9. #9
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    as tu essayé de mettre cela en haut de ta page pour voir si l'erreur continue à se produire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <pages enableEventValidation="false" viewStateEncryptionMode ="Never" />
    D'apres ce que je peux lire sur internet, d'autres que toi auraient le meme probleme , mais d'une part le sp1 du framework 3.5 devrait l'avoir résolu et d'autre part leur probleme serait de cliquer trop vite sur un lien avec postback et non l'inverse!

    Par contre si l'erreur ne survenait qu'en prod , il faudrait peut etre que tu demandes si ton hebergeur n'utilises pas de Load balancing.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Par défaut
    Bonjour,

    Active le traçage des pages dans le web.config afin de regarder la taille du viewState. Si celle si est trop importante tu risque d'avoir des soucis de perf.
    Tu peux essayer d'ajouter la directive EnableViewStateMac=false sur les pages incriminés. Ceci désactivera le MAC.
    Enfin si cela ne marche pas pu peux carrément désactiver le viewState (EnableViewState=false) mais tu perdras l'état d'affichage de tes pages.

  11. #11
    Membre éclairé Avatar de PatStan17
    Homme Profil pro
    Chef de projet / Développeur
    Inscrit en
    Décembre 2008
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2008
    Messages : 307
    Par défaut OK
    Je vais tenter ce que vous me proposez ...effectivement j'ai lu qqpart que le SP1 3.5 devait résoudre ce problème ...

    Cela se confirme quand je lance mon site sur mon serveur web local ...l'erreur ne se produit pas ...

    A creuser ...

    En tout cas merci pour votre contribution ...

    je contninu à communiquer sur l'évolution de mon problème ...

    P.JEAN

  12. #12
    Membre éprouvé
    Inscrit en
    Décembre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2003
    Messages : 108
    Par défaut
    je suis tombée sur un post qui traitait de ca dernièrement, et le problème venait de la proprieté DataKeyNames non utilisée dans un GridView mais necessaire dans un postback
    peut-être est-ce ton ptoblème

  13. #13
    Membre éclairé Avatar de PatStan17
    Homme Profil pro
    Chef de projet / Développeur
    Inscrit en
    Décembre 2008
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2008
    Messages : 307
    Par défaut ....
    cela se produit aussi sur ddes pages sans gridview. Et je renseigne toujours le DataKeyNames sur mes gridview...

    Merci

    P.JEAN

  14. #14
    Membre éclairé Avatar de PatStan17
    Homme Profil pro
    Chef de projet / Développeur
    Inscrit en
    Décembre 2008
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2008
    Messages : 307
    Par défaut ha ....
    je viens de redemander à mon hébergeur si mon application est hébergé sur une batterie de serveurs ou sur un cluster
    et si il utilise une solution de load balancing. Ce que j'avais déjà demandé et la réponse avait éte négative.
    Aujourd'hui il me dit que c'est peut être du
    à mon pool d'application dédié.
    Ils ont recrée celui-ci et me demande de tester ...

    P.JEAN

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 331
    Par défaut
    Et au final ?

    Je m'intéresse à ce problème car je viens de l'avoir également!!

    Mon appli est sur mon poste de développement (classic, rien à signaler).
    .Net 3.5 SP1 (c#)... classic

    Je n'avais aucun problème jusqu'à maintenant.
    J'ai installé mysql 5.1, et PAF !

    A noter que je n'ai pas de cluster sur ma pauv' tite machine de dev.

    J'ai bien essayé la soluce du : <pages enableEventValidation="false" viewStateEncryptionMode="Never">
    Mais rien y fait ...

    Je vais réinstallé le SP1... des fois que c'est-on jamais...

  16. #16
    Membre éclairé Avatar de PatStan17
    Homme Profil pro
    Chef de projet / Développeur
    Inscrit en
    Décembre 2008
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2008
    Messages : 307
    Par défaut et au final ....
    ...j'en suis toujours au même point ...mon application n'est pas encore en fonction donc je m'en accomode mais il va bien falloir que je m'en occupe à un moment donné et malgré mes recherches je n'ai pas trouvé une réponse qui m'a permit de resoudre ce problème ...

    j'ai remarqué que cela se produit si je laisse mon application inactive pendant un certaint temps qi je navigue sans interruption entre mes pages cela ne se produit pas ...

    J'ai besoin du viewState et je ne peux pas le desactiver ...il est vrai que mes pages sontimportante avec de multiples fonctionnalités et que la taille de clui-ci doit être conséquente mais ceci peut expliquer de la lenteur (...moi ca va merci ...) mais pas ce plantage récurrent ...La solution serait de s'adresser à dieu (Microsoft) mais bonjour les prix ....

    Je suis toujours preneur de tuyaux ...


    MERCI

    P.JEAN

  17. #17
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Voici non pas une solution mais une proposition de contournement , elle ne vaut que celle qu'elle vaut et est sans garantie.

    A priori, c'est la validation du viewstate qui pose problème. Le viewstate est stocké chez le client. Pourquoi ne pas le faire passer du côté serveur en surchargeant le PageStatePersister ?

    Dans mes pages lourdes, beaucoup ajaxisées, dans lesquelles le viewstate allourdissait trop le poids de la page, j'utilisais cette méthode. Peut-être qu'elle pourrait se révéler utile pour vous aussi :

    dans votre base class Page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected override PageStatePersister PageStatePersister { get  { return new SessionPageStatePersister(this.Page); } }
    ce code aura pour effet de faire passer le viewstate en session.

  18. #18
    Membre éclairé Avatar de PatStan17
    Homme Profil pro
    Chef de projet / Développeur
    Inscrit en
    Décembre 2008
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2008
    Messages : 307
    Par défaut Merci
    Merci pour la réponse ....

    Je vais voir ça ...tester et me documenter sur votre solution ...

    Je vous tiens au courant.

    P.JEAN

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 35
    Par défaut
    Si jamais tu es toujours en recherche de solution 9 ans après :

    Ce problème arrive, entre autres, si dans ton web.config tu mets <httpCookies requireSSL="true" /> et si tu utilises une URL HTTP et non HTTPS.

  20. #20
    Membre éclairé

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    618
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 618
    Par défaut
    Mince je n'avais pas vu que le soucis était résolu.
    Ma répose était à coté.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/04/2013, 17h14
  2. [Débutant] Échec de la validation MAC Viewstate
    Par YannickBo dans le forum ASP.NET MVC
    Réponses: 0
    Dernier message: 21/06/2012, 09h54
  3. Échec de la validation MAC Viewstate
    Par Chauve souris dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/10/2010, 10h31
  4. erreur :"Validation of viewstate MAC failed"
    Par antakini dans le forum ASP.NET
    Réponses: 0
    Dernier message: 01/02/2010, 13h04
  5. Échec de la validation MAC Viewstate
    Par PatStan17 dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 30/07/2009, 21h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo