none
Échec de la validation MAC Viewstate RRS feed

  • Question

  • Bonjour,

    Je souhaiterai savoir si quelq'un a déjà rencontré ce problème ou pas. J'ai une erreur qui arrive de facon complétement aléatoire et mon hébergeur m'envoie bouler...
    J'arrive a produire cette erreur lorsque je clique sur un lien de ma page et que celle ci n'as pas chargée completement ...
    Je devient fou avec cette erreur j'ai trouvé aucune info nulle part ...

    Alors si qq'un à une idée je suis preneur ....
    Merci ;o)

    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 : c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\palatine-am\4c698ae8\2b62e157\App_Web_8xv-0idh.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) +294
       System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +203
     
    [ViewStateException: Viewstate non valide. 
            Client IP: 86.212.76.198
            Port: 1397
            User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
            ViewState: J3gnfa0Jx1eFpUijGD+4BRGhtheokV4oL+SnHFpuTr4ztvPrJLGxwI7x358TzVlxKCoUvb0ZZ077Sx9uOn9tSV4vyaPZJRQ9IUW8hV4RzhJ1StG19v24yBdNtAYu6kcOGR77o+spRQ4nJxyCIFBtcOoa7ZgBFALIm1cEN/QR5RKxhx0eUswVT74mNsUhGX2bDy8SLGCTDI++5U6vNhJDP+gCB7Ueb25cXjxn0wYGPIHWhLSwFvYvsrHRQURrkQRaNapzENnY2JjIsS1DYy/kYnXc+ljBpCpLadnkTARn828iAHC7cRi9EL3fdM24EMj74THS4Ai9Uh2XB3UCOiCa7ZDZO3zcWzH4iuSoSByNF05kAQRDgyKOd8NAJdNrgh/QR0bTYd+zYN067xFrpCiWW0uvI3E1WgQuZgHthjsWUl2kXl17kzTfwB2bn/Uw8dbOmGvWVsoIR7Rhj7w29BjbHefBk0hGgW27e8UmeUJUuXp9hdfnek5DLQfardDVE8cqpYk53uwQeXvllcd0ITo6aTjRl+izoQXhgT3J0KheMsBW9+AKSwt8YUfEOn019Py2Xz2FumIlMPMyaa5JLf8hwxW+ChvKxm5reGDTLFCFW7J4Crttu+m7lj6jq17G8zETfy8Rh2Je6wCte9rVbO+x4ZVjb3Y0CqFUdN2r2yIu9Gqs+z0GVPlIEwiFeJliGK3I3eTkLCWG3FZiprLMhykdKxdNUmK5jgO3Nju5VmAUPcqRrAQ+FKr8mHSg10qIrs7t2ocZfSBijZbBxRZMN48UKJuxStGOkSwoFc67qKlJgZYTvyhGhMgzey5XKa0c+NJ3Nw3...]
     
    [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) +267
       System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +282
       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() +198
       System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +83
       System.Web.UI.Page.LoadAllState() +35
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +7350
       System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +213
       System.Web.UI.Page.ProcessRequest() +86
       System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +18
       System.Web.UI.Page.ProcessRequest(HttpContext context) +49
       ASP.produits_default_aspx.ProcessRequest(HttpContext context) in c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\palatine-am\4c698ae8\2b62e157\App_Web_8xv-0idh.4.cs:0
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +358
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64

     


    Informations sur la version : Version Microsoft .NET Framework :2.0.50727.1433; Version ASP.NET :2.0.50727.1433

     

     

    jeudi 27 mars 2008 16:34

Réponses

Toutes les réponses

  • Salut,

    j'ai le même problème que toi et je viens de trouver ce post qui propose plusieurs façon de résoudre le problème alors je transmets...
    http://blogs.msdn.com/tom/archive/2008/03/14/validation-of-viewstate-mac-failed-error.aspx
    Avant cela il faut apparement que tu vérifies que ton hébergeur n'a pas mis en place de solution de lowbalancing car c'est cela qui peut poser problème.
    http://www.aspfr.com/infomsg_ECHEC-VALIDATION-MAC-VIEWSTATE_1100993.aspx

    En espèrant que ça pourra t'aider...

    ++

    Jean
    mardi 20 mai 2008 08:54
  • Merci c'est super sympa....
    Mon hébergeur me soutien qu'il n'a pas mit en place de lowbalancing...
    Je vais aller jetter un oeil sur les liens ...

    Encore Merci ...

     

    mardi 20 mai 2008 12:21
  • Bonjour,

    Ce problème est résolu dans le .NET Framework 2.0 Service Pack 2 (Inclus dans le .NET Framework 3.5 Service Pack 1).

    Cordialement
    Gilles TOURREAU - MVP C#
    samedi 4 juillet 2009 21:31
    Modérateur
  • Bonjour,

     

    Ce problème existe également lors du passage du framework 3.5 à 4.

     

    Y'a-t-il une solution actuellement ?

    jeudi 3 juin 2010 13:37
  • Bonjour,

    Etes-vous en load balancing (sur une ferme IIS) ?

    Avez-vous regarder ce lien :
    http://blogs.msdn.com/b/webtopics/archive/2009/05/13/viewstate-exception-may-come-with-action-attribute-in-form-tag-post-net-framework-3-5-sp1.aspx

    Cordialement


    Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    jeudi 3 juin 2010 19:33
    Modérateur
  • Bonjour,

     

    Tout d'abord, un grand MERCI pour votre aide

     

    Oui j'utilise un load balancer

    J'ai testé l'astuce donnée dans le lien mais ça ne fonctionne pas.

     

    une autre idée ?

    mardi 8 juin 2010 07:31
  • Je poste la solution si ça peut aider qq

     

    J'avais oublié de mettre le même nom "machine key" sur les 2 serveurs (décoché l'option qui génére automatiquement les clés)

     

    pb résolu

    mardi 8 juin 2010 12:15
  • J'ai ce problème aussi et je ne comprend pas ce que tu veux dire par mettre le nom "machine key" j'ai des key dans le web.config, mais je ne sais pas si c'Est de cela que tu parle. De plus, où doit-on décocher l'option, dans fichier, édition , ... ou ailleurs.

    Merci

    mardi 8 juin 2010 15:52
  • Bonjour,

    La machine machinekey dans le web.config doit être spécifiée. Afin que votre ferme IIS (plusieurs serveurs) utilise la même clé de cryptage pour générer le ViewState.

    Plus d'informations : http://wiki.asp.net/page.aspx/1248/aspnet-and-load-balancing/

    Cordialement


    Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    mardi 8 juin 2010 17:46
    Modérateur
  • Bonjour,

    j'ai eu le même problème et en cherchant dans les forums, il semblerait que plusieurs solutions soient envisageables selon la source du problème.

    Bref, pour ma part j'ai résolu le problème en rajoutant l'attribut dans le web.config :

    <pages enableViewStateMac="false" />

    j'espère que pourra en aider certains.

    Ciao

    lundi 24 février 2014 14:00
  • Bonjour, <o:p></o:p>

    Dans mon
    cas, le problème vient de fait que l'application de recherche web sur un
    serveur web appelait le web service sur un autre serveur, qui utilise une autre
    application.

    Nous avons changé le serveur de BD et son nom a été encrypté dans le web config de l'application, mais dans l'autre web config, ça a été encore pris avec l'ancien nom encrypté.

    Le message d'erreur indiquait:

    «assurez-vous que la configuration <machineKey> spécifie le même validationKey et le
    même algorithme de validation».

    La solution a été de remplacer le nom de serveur de BD par le nouveau
    nom encrypté, pour que ça soit pareil dans le deux web config.

    J'espère
    que pourra en aider quelqu'un


    • Modifié Taja Skil mercredi 6 mai 2015 16:32 coorection
    mercredi 6 mai 2015 16:31