Ich bin mit einem Problem festgefahren, das dazu führt, dass meine Webanapplikation auf regulären Basen abstürzt. Ein Client (Browser) erhält den HTTP -Statuscode 500, nachdem einige (mehr als 1) Anforderungen an den Server gestellt wurden. Ich schaltete die IIS -Fehlanfrage und Discoverd ein, dass die Anfrage das Max -Anforderungslimit überschritt: < /p>
Maximum request length exceeded
< /code>
Ich habe mir das versteckte Feld __ViewState < /code> angesehen und festgestellt, dass es einige Informationen enthält, die ich erwartet habe, und ein kryptisches (wahrscheinlich Basis64 codiertes) serialisiertes Objekt mit 49.500 Zeichen. Ich wusste nicht, warum dies so groß war und überprüfte meine Sitzung und meine Sichtweise in meinem Code dahinter. Aber nichts war misstrauisch.
< /code>
Das war ein bisschen erfolgreich, was bedeutet, dass der Server eine weitere Anforderung überlebt hat. Bevore und dann mit einem OutofMemoryException < /code> stürzt und behauptet, dass kein Speicher mehr verfügbar sei. < /p>
Ich bin mir inzwischen ziemlich sicher, dass es einige (und mit einigen meine Tonnen) unerwünscht, unnötig, höchstwahrscheinlich nicht verwendete Objekte gespeichert gibt. (Schöne Möglichkeit, ein Speicherleck zu beschreiben;)). < /p>
Aber an diesem Punkt bin ich verloren. Gibt es eine Möglichkeit, wie ich den ViewState untersuchen kann, bevor er serialisiert und prüft, auf welche Art von Objekten wird dort verwiesen? Kann ich die ViewState/Sitzung löschen/löschen/spülen/was auch immer dafür verantwortlich ist, um einen sauberen serialisierten ViewState zu haben, der die Standardlimit nicht überschreitet?
ASP.NET ViewState übertrifft die MAX -Anforderungslänge ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post