Nach der Aktualisierung des Produkts auf .NET 4.5 erhalten wir auf unserer Website seltsames Verhalten. Ich werde versuchen, so spezifisch wie möglich zu sein, aber das Problem ist vage, also bitte ertragen Sie mit mir. Auch für dieses Szenario arbeiten Sie unter der Annahme, dass keine Best Practices eingehalten wurden.
Der Benutzer kommt auf eine Seite, die asynchron mehrere jquery-ajax-Aufrufe an einen Webservice sendet. Aufgrund des schlechten Designs / Codierens auf dieser Seite kann das Laden dauern dauern, aber es stellt ein Untermenü bereit, auf das der Benutzer zugreifen muss. Sobald die Seite geladen wird, klicken sie auf eine der Menüoptionen, um zu einer anderen Seite zu wechseln. Nichts Besonderes bisher.
Wenn wir perfmon auf einer Box verwenden, auf der nur .NET 4.0 installiert ist, sehen wir, dass die ASP.NET-Anfragen wie erwartet nach oben und unten gehen:
Wenn wir es auf einer Box mit .NET 4.5 installieren, bekommen wir folgendes:
Nachdem der oben beschriebene Workflow ausgeführt wurde, wird die Anfrage beendet. Nicht in der Warteschlange; sie sitzen einfach da.
Nach weiteren Recherchen stellen wir fest, dass das Klicken zwischen den zwei verschiedenen Seiten nicht nur eine einfache href ist, sondern tatsächlich Response.Redirect (url);
verwendetDies geschieht auch nur bei Verwendung von IE. Dies ist kein Problem bei der Verwendung von Firefox und Chrome.
Folgendes haben wir bisher versucht:
Auch hier ist der HttpHandler Code:
%Vor%Irgendwelche Vorschläge, wo wir als nächstes aussehen sollten?
Der folgende Patch wurde jetzt von Microsoft veröffentlicht und scheint das Problem zu beheben, ohne dass web.config oder IIS-Konfigurationsänderungen erforderlich sind. Ссылка Ссылка
Nach weiteren Untersuchungen und Einsichten / Lösungen des .NET-Kompatibilitätsteams bearbeite ich diese Antwort.
Die Lösung gefunden unter ManagedPipelineHandler für einen AJAX-POST stürzt ab, wenn ein IE9-Benutzer von einer Seite weg navigiert, während dieser Anruf ausgeführt wurde scheint für uns zuverlässiger zu funktionieren. Das ist Verhalten, das wir in IE8-10 erlebt haben, und nicht nur 9.
Ich werde die alte Antwort hier beibehalten, da sie hoffentlich Leute in eine andere Richtung weisen kann, wenn die erste Antwort nicht relevant ist.
Die Quelle endete mit der Sitzungssperre. Die Ereignisse AspNetSessionDataBegin und AspNetSessionDataEnd sollten ein totales Werbegeschenk sein. Für jeden, der auf dasselbe Problem stolpert, schauen Sie, wann und wie Sie in die Sitzung schreiben. Diese Links haben auch geholfen.
Tags und Links jquery asp.net iis .net-4.5 xmlhttprequest