Ú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:
Post a Comment