none
Problém s ASP.NET WebForms aplikací

    Dotaz

  • Dobrý den,
    rád bych poprosil o pomoc s následujím problémem:

    máme asp.net webforms (.net 4.0) aplikaci a čelíme problému se zasekáváním klientského prohlížeče, speciálně Internet Exploreru, včetně Edge (Chrome tyto symptomy nevykazuje). Konkrétně se jedná, podle nás, o zamrznutí prohlížeče (točí se kolečko indikující načítání stránky až do nějakého timeoutu) při zpracování javascriptem volaných webových servis. Problém se vyskytuje náhodně, u různých uživatelů v různé četnosti, a bohužel jsme neobjevily, že by došlo k jakémukoli zalogování této nestandardní situace (systémový event log, IIS log ani naše logy na straně serveru). Pokoušeli jsme se sledovat chování requestů pomocí F12 nástrojů v IE i pomocí nástroje Fiddler, ale nic jsme neobjevili. Problém lze odstranit otevřením nové relace prohlížeče a opětovnému načtení požadované url, aplikace pak zase běží standardně.

    V aplikaci jsou kromě standardních MS UI komponent využity také Telerik komponenty (verze 2016.1.113.40) a DevExpress komponenty (verze 15.1.8.0).

    Děkuji za jakékoliv tipy, v čem by mohl být problém, případně jaké nástroje použít pro analýzu tohoto problému.

    Michal Jehlář
    OpenOne, a.s.

    9. května 2016 8:45

Odpovědi

  • Dobrý den,

    asi jako první místo bych si zkusil otevřít F12 nástroje a v nich JavaScript konzoli, do které se průběžně vypisuje spousta různých méně závažných chyb a varování, které by Vás mohly dovést k cíli. Paradoxně může pomoci i browser, který nezamrzne, protože právě ten může v kritický okamžik zalogovat skutečný problém a sám se s ním vypořádat.

    Další možností diagnostiky je postupné osekávání problému (což může být značně nesnadné, pokud nedokážete situaci reprodukovat a vyskytuje se relativně řídce). Osekávání by zde spočívalo v odebírání funkcí/knihoven/částí problémové stránky a sledování, kdy to "přestane dělat". Postupně se tak můžete dobabrat k příčině.

    Jinou možností může být připojení debuggeru na browser a sledování, co se v něm děje. Na process browseru můžete attachovat klidně přímo Visual Studio, ideálně když v něm budete mít otevřen rovnou problematickou solution. V "záseku" pak můžete breaknout a zkusit, jestli Vám to ukáže nějaké dění.

    Pokud se nepodaří debugging takto přímo ve Visual Studiu, pak bych asi zkusil nějaké alternativní postupy, jak zjistit, co se tam během problému děje. Buď pomocí Windows Debuggeru (ať už sejmout memory-dump browseru, nebo se přímo attachnout), kde se dá jít hodně do hloubky, nebo vzít nějaké PerfView nebo Windows Performace Analyzer a podívat se na call-stack sampling, co browser vlastně v tu dobu dělá.

    Poslední možností může být udělat z toho problém někoho jiného. V určité chvíli je efektivnější zaplatit a sám se s tím nemordovat. Ať už zvolíte Microsoft Support, nebo nějakou lokální odbornou pomoc (např. někoho z ASP.NET MVPs).

    Hodně štěstí při lovení příčíny ;-)


    Robert Haken, Microsoft MVP ASP.NET/IIS, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz

    12. července 2016 22:48
    Moderátor