Was bedeutet die Ausnahme "Daten nicht validieren" in System.Web.Configuration.MachineKeySection.GetDecodedData

8

Ich habe eine Website entwickelt, die auf localhost Cassini testet und es lief immer gut. Wenn ich jetzt auf meinem Webserver bin, erhalte ich zeitweise den folgenden Fehler:

  

Global.Application_Error Fehler: Während der Anforderung ist eine Ausnahme eingetreten:    Ссылка Die Daten konnten nicht validiert werden. beim   System.Web.Configuration.MachineKeySection.GetDecodedData (Byte [] buf,   Byte [] Modifikator, Int32 Start, Int32 Länge, Int32 & amp; Datenlänge)          bei System.Web.UI.ObjectStateFormatter.Deserialize (String inputString) HttpApplication.RaiseOnError = & gt; EventHandler.Invoke = & gt;   Global.Application_Error

Dies wird in meinem global.asax gefangen. Ich habe gesucht, kann aber die Ursache nicht finden. Diese Ausnahme wird in sehr einfache und kleine Webforms geworfen. Die Website wird nicht in einer Webfarm gehostet.

2 Seiten scheinen diesen Fehler zeitweise zu verursachen, und einer von ihnen speichert einen bool in ViewState, aber es wird davon abgesehen nicht verändert.

Hat jemand schon mal darüber gestolpert?

    
Ciaran O'Neill 29.04.2009, 15:33
quelle

5 Antworten

11

Ссылка

Ursache: Der Hauptgrund dafür ist der Unterschied des Schlüssels beim Verschlüsseln und Entschlüsseln der Viewstate-Daten. Angenommen, ein asp.net hat eine Seite mit key1 gerendert und den Seitenstatus im Ansichtszustand gespeichert, während der Schlüssel von asp.net zu key2 geändert wurde. Wenn nun ein serverseitiges Ereignis auf der Seite auftritt, wird der Viewstatus entschlüsselt und dieser Fehler tritt auf Der alte Ansichtszustand ist aufgrund eines anderen Verschlüsselungsschlüssels nicht mehr gültig.

Es kann auftreten, wenn Sie eine Seite für längere Zeit öffnen und danach einige Ereignisse ausführen.

Lösung Korrigieren Sie den Schlüssel in Ihrer Datei web.config, sodass nur ein Schlüssel zum Verschlüsseln und Entschlüsseln der Daten des Ansichtsstatus verwendet wird.

Weitere Informationen finden Sie unter:

Ссылка

Ссылка

    
StevenMcD 29.04.2009, 15:36
quelle
8

Ich konnte in meiner asp.net-Webanwendung "System.Web.Configuration.MachineKeySection.EncryptOrDecryptData" nicht validieren. Ich löschte meine Kekse und die Ausnahme hörte auf.

    
Joey Guerra 19.07.2011 19:53
quelle
3

Fügen Sie Ihrer web.config einen Computerschlüssel hinzu, um zu sehen, ob der Fehler dadurch behoben wird

Ссылка

    
Jon 29.04.2009 15:38
quelle
0

hatte denselben Fehler. Der Maschinenkopf und der Entschlüsselungskey waren in allen web.config dieselben, aber einige web.config hatte

%Vor%

und andere nicht. Dieser Schlüssel wurde aus allen web.config entfernt. Ich denke nicht, dass die Lösung darin besteht, den Schlüssel zu entfernen, sondern in allen web.config

zu sein     
Jeanseb 14.01.2014 14:49
quelle
0

In meinem Fall hatte ich zwei Webanwendungen (eine war sehr alt und eine andere, die ich gerade erstellt hatte) und trotz der gleichen Maschinenschlüsseleinstellungen waren Tickets, die in einer Anwendung generiert wurden, in einer anderen nicht verwendbar. Dies wurde behoben, indem compatibilityMode="Framework20SP2" als Argument für machineKey node in web.config in neueren Anwendungen hinzugefügt wurde.

    
n0rd 11.11.2015 19:39
quelle

Tags und Links