1 riadok 5 hodín

Úvod
Niekedy až neuveriteľne skryté zaujímavosti odhalím pri programovaní a to tam, kde by človek najmenej hľadal. Jeden riadok kódu može naozaj stáť 5 hodín času.

Keď niečo horí, robí sa rýchlo. Čím väčší projekt, tým rozsiahlejší. Čím viac zmien, tým viac chýb može nastať. Momentálne sa jedná o web aplikáciu, čiže dynamicky generované stránky spracovávané systémom Microsoft ASP.NET 3.5.

Popis
Od nie presne definovanej udalosti, som začal zaznamenávať chybu na najnizšej úrovni aplikácie objektu Global.asax, čo znamenalo 2 veci. Buď som si nechal niekde prejsť chybu až na úplný začiatok, pretože som ju niekde poriadne neošetril alebo je to chyba samotného sytému .NET. Chybová hlaška v HttpContext.Current.Error typu System.Web.HttpException hlásila File does not exist. Ja som však priamo so subormi vôbec nepracoval. Stack Trace tiež nepodával presné informácie, ukazoval na objekt System.Web.HttpHandler. Ani náhodou nebolo jasné o kde v kóde by mohla byť chyba.

Odhalenie
Začal som teda metodicky pracovať a prerýpavať sa kódom. Skúsenosti so systematickým hladaním mám, to je moja parketa, preto to bola len otázka času a bol som čoraz viac zvedavý. Záludná chyba sa objavila po nalinkovaí statick0ho textového suboru css! Chlapci z Microsoftu opäť mysleli aj za nás a tak ASP.NET si berie na paškál aj túto oblasť. Fyzicky prekontroluje cesty v kaskadových štýloch v definovaní vlastnosti elementu url(). Je dosť možné, že aj v iných linkovaných súboroch. Takže v prípade, že sa vám objaví hláška o neexistujúcom súbore s tak dobre definovanou chybou ako u mňa, skúste skontrolovať existenciu súborov definovaných v linkovaných súboroch. Može vám to v čase prichádzajúcich osláv Nového roka ušetriť veľa času, napríklad na pečenie bábovky .

No comments: