Problemer med batch-kompilering i asp.net 2.0

Jeg har hatt litt problemer med mine ASP.NET 2.0 prosjekter i det siste. Fra tid til annen dukker følgende melding opp i browseren:

Could not load file or assembly ‘App_Web_xxxxxxxx, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’ or one of its dependencies. The system cannot find the file specified.

Det viser seg at jeg ikke er alene. På asp.net forumet har man f.eks. diskutert problemet siden april 2006, men man er ikke kommet noe nærmere en løsning. Microsoft har laget en patch som de sier kan fikse problemet (les deres issue-beskrivelse her), men vil ikke la deg laste den ned uten at du kontakter dem med en supportsak. De sier dessuten at du ikke må installere patchen hvis du ikke har opplevd problemet.., skummelt!

Flere som har forsøkt patchen sier også at problemet ikke ble borte.

Problemet er relatert til kompilering (les om kompileringsmoduser i asp.net 2.0 her), og dukker av og til opp når man har endret en eller annen user control - sansynligvis i kombinasjon med bruk av master pages, hvor sidene, user controllene og master pagen batch-kompileres inn i én assembly.

Og når den først har oppstått er feilen vanskelig å bli kvitt - man må tvinge en rekompilering, og rådene for hvordan man skal gjøre det er mange, men etter min erfaring må man kombinere flere av dem for å få det til. Og det som virket i går fungerer ikke nødvendigvis i dag. Det som fungerte for meg på fredag var å editere master page’n, og samtidig starte en ny bruker session, så jeg kommer til å prøve det neste gang.

Det som er mer skummelt er at det blir rapportert at dette også skjer på produksjonsservere.., med debug=false, og uten at det er foretatt endringer i kode. Det virker på meg som om Microsoft her har en bug de absolutt burde sette mere krutt inn på for å fikse.., dette har nå tatt veldig lang tid, og Microsofts representant på forumet har blitt veldig stille. Hans siste uttalelse kom i juni, og lød:

“Regarding a download of the fix, we don’t ever provide fixes at this stage for public download. (..) Once we go through enough testing, it will be available for download, likely in a SP.”

Det har enda ikke skjedd.

Kategorier: Webutvikling.
RSS feed for kommentarene. Tilbaketråkk.

3 kommentarer til “Problemer med batch-kompilering i asp.net 2.0”

  1. Torbjørn Says:

    Hvis noen lurer på hva jeg gjorde på fra halv tre til fire i dag så kan dere slutte å lure nå. Feilen oppstod nemlig igjen i dag, så da tenkte jeg jeg skulle følge anbefalingene fra asp.net forumet og forsøke å finne en løsning som virket. Jeg gjorde følgende (for hver test opprettet jeg en ny session mot siten):

    * editerte masterpage -> virket ikke
    * bygget websiden på nytt i VS -> virket ikke
    * IIS reset -> virket ikke
    * Rebuild på hele solution -> virket ikke

    Ok, fra nå av er “virker ikke” inneforstått sålenge jeg ikke sier noe annet…

    * Editerte den cs filen som i følge feilmeldingen forårsaket problemet
    * Editerte baseklassen som alle sidene arver fra
    * IIS reset + at jeg slettet alle sitens filer under C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\. Dette var kjempevanskelig, da diverse prosesser holdt på filene. Ifølge forumet skulle dette alltid hjelpe, men ikke hos meg nei.
    * Slettet alle de temporære filene på nytt + at jeg editerte masterfilen
    * Satte debug=false + en IIS reset

    Begynte å bli desperat nå…

    * Editerte default.aspx (som var filen jeg lastet). Andre sider fungerte nemlig.
    * Fjernet “Allow the precompiled site to be updateable” + rebuild av hele solutionen
    * Endret en vilkårlig user control + IIS reset

    På dette tidspunktet begynte jeg bare å editere diverse filer, men ingenting hjalp, men så…

    * Editerte ut koden som feilet -> OG DETTE FUNGERTE (SELVFØLGELIG!)

    …men fikk samme feilen på en annen side tre sekunder senere. I debug-modus så jeg at applikasjonen nå feilet da den aksesserte en session variabel.

    * Endret navnet på session-variabelen -> Det virket!!!

    Men jeg måtte selvsagt endre navnet tilbake igjen, og da virket det ikke lengre.

    * Forsøkte å restarte state servicen -> no luck!

    * Diverse endringer på koden som brukte session variabelen, for så å fjerne alle endringene igjen + en ny build

    OG NÅ VIRKER DET!

    Inntil videre…

    Jeg HATER sånne bugs som oppfører seg forskjellig hver gang — og SPESIELT hvis det er Microsoft som har laget dem!

  2. Torbjørn Says:

    En liten oppdatering:

    Feilen oppstår fortsatt, gjerne 5-6 ganger pr dag, spesielt ofte hvis jeg editerer filer i App_Code katalogen. Og løsningen jeg har kommet frem til virker hver gang: jeg endrer navnet på session-variabelen (nevnt i forrige kommentar).

    Jeg ser ingen grunn til at feilen skulle oppstå eller at fiksen min skulle virke, men jeg har lært meg å leve med det :|

  3. kjempekjekt.com » Blog Archive » ASP.NET patch for kompileringsproblemer Says:

    […] Jeg har tidligere blogget om et problem med batch-kompilering i ASP.NET 2.0. ScottGu kan i dag melde at de (Microsoft) nå endelig har laget en Hotfix for problemet. […]

Skriv en kommentar

Torbjørn Marø

Torbjørn er systemutvikler og et aktivt medlem av .NET-miljøet i Bergen. Dette er hans blog.

Mulig relaterte linker

Siste kommentarer


Vidar Lund: Eg må sei eg synes YAGNI har mye for seg... ;) http://en.w...

Torbjørn: Ehh.. Nei! ;) Regnet ikke med at ideen min var orginal, men...

Odd Rune: Ehh.. Nagios?...

Arneth: «de definerer en Monad som noe som er en Monad» … det er...

Lasse V. Karlsen: Jeg har lenge forsøkt å forstå Monads og relatert kunnska...

Kenneth: Ja, jeg innså til slutt at jeg ikke kunne bruke den "vanlig...

Torbjørn: Kan alltid stole på at Ameth kommer med en fungerende løsn...

 Hold deg oppdatert

Søk i bloggen

  • Follow me on Spotify

    Kategorier

  • .net ninja (26)
  • Bøker (10)
  • Diverse prosjekter (25)
  • Erlang (7)
  • F# (2)
  • Hardware (1)
  • Jobb (64)
  • kjempekjekt.com (16)
  • LISP/Clojure (11)
  • NNUG / community (39)
  • O/RM & databaser (9)
  • Off topic (112)
  • OO-design/clean code (19)
  • Podcasts (10)
  • Polyglot (26)
  • Ruby (19)
  • Silverlight / RIA (3)
  • Software/verktøy (16)
  • Softwareutvikling (14)
  • Testing / TDD (25)
  • the contiki strip (13)
  • User experience (3)
  • WCF (3)
  • Webutvikling (20)
  • WPF (9)
  • WTF (4)
  • Abonner via epost

    Om du vil kan du få alle nye blogposter tilsendt til din epost. Abonner nå, det er kjempeenkelt!

    Mine bokmerker

    Meta