Thomas Bandt

Über mich | Kontakt | Archiv

[Update] ASP.NET MVC: Fehler bei der Validierung von ViewState-MAC

"Fehler bei der Validierung von ViewState-MAC. Wenn diese Anwendung von einer Webfarm oder einem Cluster gehostet wird, stellen Sie sicher, dass die -Konfiguration den gleichen validationKey und Validierungsalgorithmus angibt. AutoGenerate kann in einem Cluster nicht verwendet werden."

Kennen wir ja schon ... aber halt - ViewState? Doch nicht mit ASP.NET MVC!? Das spielt hier eigentlich gar keine Rolle, und trotzdem kommt es unter - von mir nicht bis zum Schluss geklärten - Umständen zu diesem Fehler. Konkret als ich ein MVC-Projekt auf einem IIS7 installiert habe und mit dem IE8 unter Windows aufrief.

Die Lösung ist einfach. Da uns der ViewState hier ja nun wirklich nicht die Bohne interessiert, schalten wir ihn einfach ab:

   1:  <system.web>
   2:    <pages enableViewState="false" enableViewStateMac="false">
   3:  </system.web>

That's it.

Update

So einfach ist es dann scheinbar doch nicht. Denn obwohl diese Exception geworfen wird, ist die Ursache augenscheinlich eine andere - denn auch nach Deaktivierung des ViewStates habe ich diesen Fehler noch erhalten, und zwar am Mac als auch unter Windows.

Ursache scheint mir momentan die Absicherung der Formulare durch Html.AntoForgeryToken() zu sein, in Kombination mit dem Aufruf der Anwendung über ein virtuelles Verzeichnis unterhalb des Roots. Irgendwo verschluckt er sich da beim Setzen des Cookies und crasht dann.

So wie es aussieht, muss man diesen Pfad des virtuellen Verzeichnisses auch für das AntiForgery-Cookie verwenden:

   1:  <%= Html.AntiForgeryToken(null, null, "/VirtuellesVerzeichnis") %>

Da nun aber der Aufruf in der lokalen Testumgebung über localhost crasht, muss man auch lokal mit diesem Verzeichnis arbeiten. Also entweder das virtuelle Verzeichnis am IIS entsprechend benennen, oder aber für den VS-Developmentserver konfigurieren: Rechtsklick auf den Root des Webprojekts -> Eigenschaften -> Web -> "Visual Studio Development Server verwenden" > Virtueller Pfad.

Kommentare

  1. Juergen schrieb am Mittwoch, 23. Februar 2011 07:37:00 Uhr:

    Hallo,

    ich habe das selbe Problem, scheitere aber schon an der Reproduktion des Problems. Ich bekomme von meinen Webseiten ne Mail mit der Fehlermeldung "Fehler bei der Validierung von ViewState-MAC", allerdings hab ich das bei den selben Webseiten nie reproduzieren können.

    Kannst Du mir Tipps geben, wie du diesen Fall herstellst? DAnn könnte ich auch mal die von Dir vorgeschlagenen Maßnahmen probieren.

    Viele Grüße,
    Jürgen


« Zurück  |  Weiter »