Artikel-ID: 812399 - Geändert am: Dienstag, 11. Oktober 2005 - Version: 2.7

Update: "der Anzeigestatus für diese Seite ist ungültig und möglicherweise beschädigt" Fehlermeldung Wenn der Ansichtszustand Objekte enthält, die lange Dezimalstellen in der.NET Framework 1.0

Auf dieser Seite

Alles erweitern | Alles schließen

Problembeschreibung

Wenn Sie eine Seite, die numerische Daten in dem Ansichtszustand enthält öffnen, wenn die Zahlen sehr klein sind, bringt z. B. fünf hinter der Dezimalstelle (0.00004) Sie emfpangen ein View State-Fehlermeldung ähnlich der folgenden:
Serverfehler in ' / vState2 "Application. --------------------------------------------------------------------------------Der Anzeigestatus für diese Seite ist ungültig und möglicherweise beschädigt. Beschreibung: Bei der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo dieser Fehler im Code verursacht wurde.

Ausnahmedetails: System.Web.HttpException: der Anzeigestatus für diese Seite ist ungültig und möglicherweise beschädigt.

Quellfehler:
Während der Ausführung der aktuellen Webanforderung wurde eine unbehandelte Ausnahme generiert. Informationen über den Ursprung und die Position der Ausnahme kann mit der Ausnahmestapelüberwachung unten identifiziert werden.

Stapelüberwachung:
[HttpException (0 x 80004005): der Anzeigestatus für diese Seite ist ungültig und möglicherweise beschädigt.] System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +150 System.Web.UI.Page.LoadPageViewState() +16 System.Web.UI.Page.ProcessRequestMain() +421

Ursache

Dieses Problem rührt von .NET Framework kleine Zahlen in der Anzeigestatus in wissenschaftlicher Notation konvertiert. Wenn .NET Framework versucht, die Anzahl zu deserialisieren, kann die Anzahl nicht erkennen, oder die Anzahl ist nicht das erwartete Datenformat.

Lösung

Ein Hotfix zur Behebung dieses Problems ist inzwischen bei Microsoft erhältlich; dieser Hotfix wurde jedoch ausschließlich zur Behebung des in diesem Artikel beschriebenen Problems entwickelt. Deshalb sollten Sie nur Systeme aktualisieren, bei denen dieses spezielle Problem auftritt. Dieser Hotfix wird unter Umständen zu einem späteren Zeitpunkt weiteren Tests unterzogen. Wenn Sie durch dieses Problem nicht schwerwiegend betroffen sind, empfiehlt Microsoft daher, auf das nächste .NET Framework 1.0 Servicepack warten, das diesen Hotfix enthält wird.

Wenn Sie das Problem sofort beheben möchten, wenden Sie sich an Microsoft Product Support Services, um den Hotfix zu erhalten. Eine vollständige Liste mit Telefonnummern der Microsoft-Produktsupport und Informationen Supportkosten der folgenden Microsoft-Website:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
Hinweis: PLEASE DO NOT TRANSLATE and DELETE THIS PASSAGE. IT DOES NOT APPLY TO GERMANY.Die englische Version dieses Updates weist die in der nachstehenden Tabelle aufgelisteten Dateiattribute (oder höher) auf. Die Datums- und Uhrzeitangaben für diese Dateien werden in Coordinated Universal Time () angegeben. Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Um die Differenz zwischen UTC und der Ortszeit zu ermitteln verwenden Sie die Registerkarte Zeitzone des Tools ? Datum und Uhrzeit in der Systemsteuerung.
   Date	        Time   Version       Size       File name
   -------------------------------------------------------------
   01-Nov-2002  17:47  1.0.3705.370    196,608  Aspnet_isapi.dll
   01-Nov-2002  17:47  1.0.3705.370      4,169  Aspnet_perf.h
   01-Nov-2002  17:47  1.0.3705.370     20,468  Aspnet_perf.ini
   01-Nov-2002  17:47  1.0.3705.370     20,342  Aspnet_perf2.ini
   01-Nov-2002  17:47  1.0.3705.370     28,672  Aspnet_wp.exe
   16-Oct-2002  17:22  1.0.3705.288         15  SmartNav.htm
   18-Oct-2002  11:03  1.0.3705.288      8,800  SmartNav.js
   16-Oct-2002  17:22  1.0.3705.288      7,003  SmartNavIE5.js
   01-Nov-2002  17:47  1.0.3705.370  1,191,936  System.Web.dll

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

Gehen Sie folgendermaßen vor, um das Problem zu reproduzieren:
  1. Fügen Sie den folgenden Code in eine neue Datei mit dem Namen Viewstate.aspx und speichern Sie die Datei auf das Stammweb eines Servers mit IIS-:
    <html>
    	<script language="C#" runat="server">
    
    	[Serializable]
    	public class myObjects
    	{
    		internal object _stepPrice;
    		public object StepPrice	{ get { return _stepPrice; } }
    	}
    
      public void Page_Load(Object sender, EventArgs E)
      {
        if (!IsPostBack)
        {
    		myObjects m1 = new myObjects();
    		myObjects m2 = new myObjects();
    		
    		decimal tmp1 = 0.09194m; //This can be reproduced if these values are less than 0.0001. Otherwise, it works as expected.
    		decimal tmp2 = 0.01m;
    		m1._stepPrice= (object)tmp1;
    		m2._stepPrice= (object)tmp2;
    
    		object[] hello ={m1,m2};
    		ViewState["MyObj"]=hello;
        }
      }
    
      public void Submit_Click(Object sender, EventArgs E)
      {
    			object hello;
    			hello = (object) ViewState["MyObj"];
      }
    
    	</script>
    	<body>
    		<form id="Form1" runat="server">
    			<asp:Button ID="Submit" OnClick="Submit_Click" Text="Submit" Runat="server"></asp:Button>
    		</form>
    	</body>
    </html>
  2. Die Seite im Browser anzeigen (http://localhost/Viewstate.aspx). Klicken Sie auf Senden . (Kein Fehler auftritt.)
  3. Ändern Sie die folgenden Codezeilen in der Datei, und speichern Sie die Datei:

    Von
    decimal tmp1 = 0.09194m;
    decimal tmp2 = 0.01m;
    in
    decimal tmp1 = 0.00009194m;
    decimal tmp2 = 0.00001m;
  4. Schließen Sie den Browser.
  5. Öffnen Sie den Browser erneut, und dann zuzeigen Sie die Seite erneut an. Klicken Sie auf Senden .

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Academic Edition
  • Microsoft .NET Framework 1.0
Keywords: 
kbmt kbhotfixserver kbqfe kbvs2002sp1sweep kbqfe kbnetframe100presp3fix kbfix kbwnet kbproperties kbbug KB812399 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 812399  (http://support.microsoft.com/kb/812399/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
 

SPRACHE AUSWÄHLEN