piątek, 28 lutego 2014

Telerik RadGrid + AJAX + IE + .NET w wersji 4.5.0 i starszej = problemy

Ostatnio walczyłem z bardzo dziwnym problemem - query AJAXowe w IE przy pierwszym callu nie zwracały żadnego wyniku, pomimo, że w Firefox i Chrome wszystko pięknie bangla. Debug - nic, wszystko OK, brak problemów. Do tego problem występuje na teście i produkcji, nie da się go na localhoscie powtórzyć. A problem dotyczy wyłącznie jednego widoku a co najmniej w 10 zbudowanych na podobnych zasadach jest OK, a zatem WTF?!? Po całkiem długim googlaniu udało mi się znaleźć informację o możliwości podejrzenia w IIS jakie query pracują po stronie serwera.

Po otwarciu IISa należy wejść w Worker Process, znaleźć interesującą pule i ją otworzyć. Widzimy wtedy wszystkie aktualnie przetwarzane requesty wraz z ich stanem. I tu doszedłem do ciekawej sytuacji - IIS utyka w RequestAcquireState aż do timeout'u.

Googlanie ponowne i informacja o tym, że IE nie ustawia jakiegoś(?) cookie (sorry to było z miesiąc temu w detalach nie pamiętam) i przez to aplikacja nie wykonuje RequestEnd. Mając tą wiedzę ponownie Google Fu. I tu niesamowite zaskoczenie - Microsoft przyznaje się do błędu w .NET (w wersjach aż do 4.5 włącznie). Dopiero w .NET 4.5.1 rozwiązano trwale ten problem. I faktycznie - instalacja nowszego .NETa niż używany do tej pory (upgrade z 4.5 do 4.5.1) rozwiązał problem. Wg stron Microsoftu istnieje jakieś KB, ale nie udało mi się go znaleźć na stronach M$ do ściągnięcia. W sieci można znaleźć jakieś paczki na innych serwerach niż M$owe, ale to zbyt duże ryzyko. Nie wiadomo co tak naprawdę w nich siedzi.

Brak komentarzy:

Prześlij komentarz