ASP.NET Ajax-Fehler: Sys.WebForms.PageRequestManagerParserErrorException
Meiner website hat er mir intermittierende Fehler beim ausführen alle Ajax-Aktivitäten. Die Botschaft, die ich bekomme, ist
Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. Common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled.
Details: Error parsing near '
<!DOCTYPE html P'.
Also seine offensichtlich eine Art von server-timeout oder der server ist einfach wieder zurück entstellten Müll. Dies in der Regel, leider nicht immer, happe
InformationsquelleAutor der Frage Phil Bennett | 2008-11-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine ausgezeichnete blog-Eintrag von Eilon Lipton. Es enthält viele Tipps, wie Sie diesen Fehler vermeiden:
Sys.WebForms.PageRequestManagerParserErrorException - was es ist und wie es zu vermeiden
Lesen der Kommentare auch. Es ist ein Kommentar von jemandem mit dem gleichen problem: "ich löste es, ändern der server-idle-time of my app-pool auf IIS. Es war erst 5, also habe ich erhöht und jetzt funktioniert".
"Das UpdatePanel-Steuerelement verwendet asynchrone postbacks zu Steuern, welche Teile der Seite Rendern. Es tut dies mit einer ganzen Reihe von JavaScript auf der client-und eine ganze Reihe von C# auf dem server.
Asynchrone postbacks sind genau die gleichen wie regelmäßige postbacks, außer für eine wichtige Sache: das rendering. Asynchrone postbacks gehen durch den gleichen Lebenszyklus-Ereignisse, als reguläre Seiten (dies ist eine Frage, die mir oft gestellte).
Nur in der render-phase tun Dinge anders. Fangen wir Rendern nur die UpdatePanels, wir kümmern uns darum und senden Sie es nach unten, um den client mit einem speziellen format. Darüber hinaus senden wir einige andere Stücke von Informationen, wie Titel der Seite, die versteckte form, in Werte, die form, die action-URL, und Listen von scripts."
Häufigsten Gründe für Fehler:
InformationsquelleAutor der Antwort splattne
Wahrscheinlich ist es ein Fehler auftreten, der auf post zurück. In diesem Fall können Sie details über den Fehler, indem ein PostBackTrigger zu Ihrem updatepanel und verweisen auf die Taste, die das problem verursacht:
InformationsquelleAutor der Antwort CSharper
Ich musste mir das passieren und keiner von den Ursachen auf die Liste in der Antwort angewendet. Finde ich nicht die Wurzel des Problems, bis ich meine Behinderte AJAX zusammen. Entdeckt, dass der code war das speichern ein Objekt der ViewState, die eine unserializable Objekt. Ich machte das Objekt serialisierbar ist und es wieder angefangen zu arbeiten.
InformationsquelleAutor der Antwort user1097991
Löste ich das exakt gleiche problem, das entfernen der
Content-Type:
form derCustom HTTP Headers
Abschnitt in derHTTP Headers
Registerkarte inIIS
. Dies war das brechen der Codierung der Seite und irgendwie betroffen Ajax im Allgemeinen.Den
Content-Type
ich hatte konfiguriertIIS
Einstellung war, die Kodierung, dieISO-8859-1
.InformationsquelleAutor der Antwort BrunoSalvino
Dies kann ein wenig hacky, aber es löste das Problem für mich. Ich habe keine der häufigsten Gründe für den Fehler, so dass ich nur setzen Sie in diesem band-aid, die in die Seite geladen werden:
InformationsquelleAutor der Antwort rahkim
Problem: Sys.WebForms.PageRequestManagerParserErrorException wird auftreten, wenn die Umleitung Ihrer Seite, können sagen, Taste, klicken Sie in UpdatePanel in aspxAjax.
Lösung:
Fügen Sie eine "GoTo" - Taste in Ihrer aspx-Seite, in dem update-panel ist mit und fügen Sie es außerhalb der Update-panel
In Ihrem code zuweisen ur nur registrierte Benutzer-id session-variable , sagen
Session["UseridJustregistered"]=Id
von der DB oder UsernameFieldRespose.Redirect("regSucces.aspx?urlid='" + Session["UseridJustregistered"] + "'");
Prüfen, ob
Session["UseridJustregistered"]
null ist oder nichtDies ist ein ALTES Klassisches ASP Weise unser problem zu lösen , wenn Microsoft eine Lösung finden, die wir angehen können, es auf diese Weise.
InformationsquelleAutor der Antwort Mathew M Mathew-Nest
Ich löste dieses problem durch das entfernen versehentlich geschachtelt UpdatePanels.
InformationsquelleAutor der Antwort Anuradha
Habe ich endlich gelöst, meine Variante dieses problem. Ich war versucht zu kopieren/verschieben eines ausgewählten Wert zwischen 2 Listboxen in einem Webformular. In meinem Fall musste ich gezielt aufrufen {listbox}.ClearSelection() vor dem ausführen der Aktion das 2. mal um.
So offensichtlich dieses problem/Fehlermeldung können auftreten, für eine Vielzahl von Gründen.
InformationsquelleAutor der Antwort Chuck
Ändern der app-pool INTEGRIERT asp.net klassische das problem bei mir gelöst.
InformationsquelleAutor der Antwort Alexander
In unserem Fall das Problem verursacht wurde durch ein rewriting proxy auf dem Weg. Die rewrite geändert, der Inhalt der update-panel-Reaktion. Aber diese Antwort enthält auch original-Größe. Die rewriting-Mechanismus kann nicht wissen, dass einige bytes der Antwort tatsächlich enthält die original-Antwort Größe und es sollte auch geändert werden.
Das update-panel-Antwort beginnt so:
Den
30502
ist die ursprüngliche Größe der Inhalte, die aktualisiert wird. Rewriting engine ändert den Ausgang, aber die Größe bleibt unverändert => parser-error-Ausnahme ausgelöst.Ich sehe nicht, einen Weg zur überwindung dieser Ausgabe von der client-Seite. Wir müssten wissen, wie genau war der Inhalt geändert und dann irgendwie die Größe ändern, in der Antwort, bevor UpdatePanel ClientScript startet die Verarbeitung.
InformationsquelleAutor der Antwort mivra
Bekam ich auch diese Fehlermeldung. Die Lösung berichtet von "user1097991" gelöst, es für eine Weile (ich war die Verwendung von nicht-serialisierten Objekte auf den viewstate)
Aber später der Fehler wieder, nun in einer zufälligen Mode. Nach einigem suchen bekam ich die Antwort: viewstate war zu groß und wurde abgeschnitten. Ich deaktivieren Sie einige viewstates auf Netze und Menüs und das problem noch nicht wieder gezeigt.
InformationsquelleAutor der Antwort Gustavo Cardoso
Fand ich, dass mein Problem war mit einem nul-Zeichen gerendert, in das databinding an ein GridView. Die erwartete Länge der Antwort war nicht passend zu den tatsächlichen Länge der Antwort-text, die zu dem Fehler geführt haben geworfen. Sobald ich fixe Daten in der Datenbank, die ich nicht mehr habe den Fehler. Das ultimative Update wird es sein, bereinigen Sie den text immer gerendert, während das RowDataBound-Ereignis.
Suchen durch die Datenbank, ich konnte nicht sehen, die falsche Daten ein, die seit SQL Server 2008 nicht den text angezeigt, wenn das nul-Zeichen (Char(0)) wird in den string. In der RowDataBound Ereignis in meinem GridView, ich code Hinzugefügt, um eine exception zu werfen, die für jeden text, der hatte ein besonderes Zeichen. Dies ist, wie ich fand, den Datensatz, die das nul-Zeichen.
tl;dr - Check für das nul-Zeichen in den gerenderten html-Code.
InformationsquelleAutor der Antwort Casey
Bitte auch bewusst sein, dass dies kann verursacht werden durch nicht ordnungsgemäß html-Codierung, was Sie möglicherweise das Rendern der Seite durch partielle postbacks.
InformationsquelleAutor der Antwort John
Ich hatte genau den gleichen Fehler.
War es für mich
Fehlt in der httpModules-Abschnitt der web.config (.Net 3.5-app)
Dieser Fehler scheint zu sein mag in Bezug auf viele verschiedene Dinge.
InformationsquelleAutor der Antwort AFract