Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

System.AccessViolationException: Attempted to read or write protected memory.

  • 11 odgovora
  • 3.798 pregleda

Najnovija ↓

System.AccessViolationException: Attempted to read or write protected memory. 29.05.2006. u 03:07 · pre 248 meseci #1
Evo problema...

Razvijam Windows Forms aplikaciju, koja koristi MS SQL 2000 kao data store. Aplikacija radi dobro na većini računara, ali na nekim od njih dobijam ovu grešku kada pokušam da povučem podatke sa Sql Servera koristeći TableAdapter da popunim typed DataSet.

Najveći broj informacija koje sam uspeo da pronađem o ovom exception-u govore da se može desiti kada se koristi unsafe kod ili Platform Invoke funkcije, a ja ne koristim ni jedno ni drugo, nego isključivo managed kod.

Drugi problem je što mi je klijent u Americi, tako da nemam pristup računarima na kojima dolazi do greške, da bih eventualno mogao da pronađem razliku između onih na kojima radi OK i onih gde dolazi do greške. Na svim računarima je Windows XP i koliko ja znam, nema neke bitne razlike u instaliranom software-u. A, naravno, na svakom računaru na kojem sam ja lično testirao aplikaciju, sve radi kako treba.

I još jednu stvar da napomenem. Ovo je treća aplikacija koju razvijam za istog klijenta i sve tri imaju isti problem na istim računarima. Naravno, sve tri pristupaju istom Sql Serveru...

Ako neko uspe da mi reši ovaj puzzle, ima gajbu piva od mene... :D
Potpis
Oliver 'FAQ' Klaćik
Re: System.AccessViolationException: Attempted to read or write protected memory. 31.05.2006. u 16:42 · pre 248 meseci #2
Šta je bilo? Niko neće pivo? :D

Anyway, pošto sam postavio isto pitanje na MSDN forumu, evo razvoja situacije:

- Problem nije u limited user account-u. Greška se javlja i kada se aplikacija instalira i pokrene sa administratorovog naloga.
- Problem nije u istovremenim pozivima sa različitih thread-ova, jer koristim samo jedan thread u celoj aplikaciji (tj. u sve tri).

Možda sad imate jasniju situaciju oko toga šta ne izaziva problem, ali su rešenje (i gajba :)) još uvek 'out of reach'...
Potpis
Oliver 'FAQ' Klaćik
Re: System.AccessViolationException: Attempted to read or write protected memory. 31.05.2006. u 16:42 · pre 248 meseci #3
Problem je bug u .NET 2.0 implementaciji soketa koji puca kad se dogodi exception u unmanaged delu ispod. Neki programi instaliraju "prljave" DLLove kao deo TCPIP steka i bacaju nepredvidjene exceptione koji teraju .NET deo soket implementacije da pukne, sto na kraju bubble-uje do tebe.
Koliko vidim problem prave "prljavi" programi kao sto je NOD32, Panda Antivirus, NetLimiter i ostali koji se igraju sa soketima tamo gde ne bi smeli.

Mozda oni imaju neki od ovih antivirusnih paketa / limitera na nivou korporacije. Iako ti ne koristis unmanaged code, SQL native client koji koristis na odredjnom nivou dubine koristi sockete u unmanaged modu. Konsultuj se sa amerima i vidi sta imaju od instaliranog softvera.


Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: System.AccessViolationException: Attempted to read or write protected memory. 01.06.2006. u 14:44 · pre 248 meseci #4
Nista gajba, a? ;) (kidding)

Ozbiljno, proveri ovo sto sam napisao, mozda postoji i neki deseti program koji nisma naveo a koji to izaziva, pa bih i ja voleo da znam koji je ako i sam naletim na takav setup kod klijenata. Na jednom mestu sam vec naleteo na NOD32.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: System.AccessViolationException: Attempted to read or write protected memory. 01.06.2006. u 16:49 · pre 248 meseci #6
Citat:
vekica: drugo samo nabacujem ideju o mozda korisnoj alatki http://www.codeplex.com/Wiki/View.aspx?ProjectName=MSE pa da sam istrazujes resenje.


MSE je dobar za point-in-time stack trace, ali ne ulazi u unmanaged code posto stack frame nije isti, tako da sumnjam da moze nesto pomoci ovde. Baceni exception uvek uzme trenutni snapshot managed stack-a i stavi ga kao deo exception-a, tako da je u tom trenutku ovaj tool suvisan (posto se vec zna managed stek u trenutku pucanja aplikacije).

Remoting isto mislim da u ovom slucaju nije problem, posto nije naveo da ga koristi, a i rekao je da puca pri citanju iz baze, stoga je prva indikacija socket layer koji jeste unmannaged. Cak i da jeste remoting, i on isto puca preko SocketChannel-a na istom mestu (u unmannaged kodu socketa)

Postoji druga tehnika za hvatanje tih exception-a, opisana u Diagnosing Errors with Managed Debugging Assistants na koji nacin sam ja u svom problemu dosao do krivca (jedan od DLLova iz NOD32), medjutim, koliko sam ja shvatio, problem je da covek nema pristup runtime masini na kojoj puca aplikacija

Olivere, alternativno mozes mozda da vidis sa njima da naprave jednu VMWare "masinu" tamo u americi i na nju stave sve sto bi inace stavili na ostale desktop masine i ako puca na njoj onda da ti posalju taj VMWare da ga podignes kod sebe kao test platformu. (to bi ti inace i bila dobra praksa da imas pri sebi za druge potencijalne bagove)
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: System.AccessViolationException: Attempted to read or write protected memory. 02.06.2006. u 13:36 · pre 248 meseci #7
Biće gajbe, Miljane... :D Samo, ne znam da li da ti je pošaljem brodom ili avionom? :)

Još uvek ne znam da li je problem rešen, pa zato nisam ništa postovao... A zbog toga je i gajba na standby-u... :)

Juče sam mu poslao tvoj post (preveden na engleski, naravno) i on reče da imaju neki limiter software i da će probati da pokrene aplikaciju bez njega. Kada mi on javi šta je uradio, ja ću preneti ovde...

Inače, postavio sam identičan post na MSDN forumu, ali tamo još nisam dobio neki koristan odgovor. Ako nekog interesuje da prati šta se tamo dešava sa ovom temom, evo linka:

http://forums.microsoft.com/MS...spx?PostID=432785&SiteID=1

Btw, kada sam krajem 2003-će krenuo na MCAD kurs u SC Akademiji, bila je priča o jednom .NET programeru koji je upravo našao posao na nekom egzotičnom ostrvu. A ako me sećanje služi dobro, mislim da su rekli da se zove Miljan. Pa, sad mene kopka da li si ti u pitanju... Jel' znaš tu ekipu iz SC Akademije (Ogar, Sveta)?
Potpis
Oliver 'FAQ' Klaćik
Re: System.AccessViolationException: Attempted to read or write protected memory. 02.06.2006. u 14:19 · pre 248 meseci #8
Citat:
Oliver Klaćik: Biće gajbe, Miljane... :D Samo, ne znam da li da ti je pošaljem brodom ili avionom? :)

Haha, nista ti ne brini, stizem ja u Beograd krajem meseca :) Ovi nesrecnici ovde, sa sve parama koje imaju, ne bi znali pivo da naprave da im zivot zavisi od toga :) Hladan Jelen, kajmak, prsuta i Karneks pasteta, top 4 prioriteta :D

Citat:
Oliver Klaćik: Juče sam mu poslao tvoj post (preveden na engleski, naravno) i on reče da imaju neki limiter software i da će probati da pokrene aplikaciju bez njega. Kada mi on javi šta je uradio, ja ću preneti ovde...

Definitivno zvuci kao izvor tvog problema. Samo mu reci da uninstall tog programa mozda i nece resiti problem. Nek reimaguje blanko masinu i instalira sav ostali softver sem limitera. Dosta tih low level socket programa ostavljaju te "prljave" DLLove za sobom.

Citat:
Oliver Klaćik: Btw, kada sam krajem 2003-će krenuo na MCAD kurs u SC Akademiji, bila je priča o jednom .NET programeru koji je upravo našao posao na nekom egzotičnom ostrvu. A ako me sećanje služi dobro, mislim da su rekli da se zove Miljan. Pa, sad mene kopka da li si ti u pitanju... Jel' znaš tu ekipu iz SC Akademije (Ogar, Sveta)?

Haha, bice da sam ja, u to doba sam uveliko radio offshore za mog trenutnog poslodavca.
Ajoj, bruke, udjoh u MCAD citanke :) Znam dobro Ogara i jos bolje svojevremenog direktora Vladana. Ako naletis na Ogara, prenesi mu puno pozdrava, cujem da je postao nezaobilazni deo MS scene u Srbiji.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: System.AccessViolationException: Attempted to read or write protected memory. 13.06.2006. u 16:43 · pre 248 meseci #9
Citat:
Oliver Klaćik: Juče sam mu poslao tvoj post (preveden na engleski, naravno) i on reče da imaju neki limiter software i da će probati da pokrene aplikaciju bez njega. Kada mi on javi šta je uradio, ja ću preneti ovde...


Nista ne javljas, pronadjoste li "krivca" za ovo? (mani pivo, interesuje me koji je program u pitanju)

Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: System.AccessViolationException: Attempted to read or write protected memory. 28.07.2006. u 21:42 · pre 246 meseci #11
Eee, Miljane, ništa od piva... :(

Kaže mi lik da nije uspeo da reši problem, pa sad moram celu aplikaciju da transformišem u 'web based', što btw apsolutno ne volim da radim...

Ali, šta je tu je...

Ako ništa, bar si zaslužio pivo za pokušaj... :)
Potpis
Oliver 'FAQ' Klaćik
Re: System.AccessViolationException: Attempted to read or write protected memory. 01.08.2006. u 19:16 · pre 246 meseci #12
Citat:
Oliver Klaćik: Eee, Miljane, ništa od piva... :(
Kaže mi lik da nije uspeo da reši problem, pa sad moram celu aplikaciju da transformišem u 'web based', što btw apsolutno ne volim da radim...


Ma. mani pivo. :)

Nego mi smesno sto opet vidim ovu besmislenu business logiku na delu. Nesto nas zeza u kompanijskom standardu za desktope, pa umesto da nadjemo sta smo zeznuli, promenicemo standard za aplikacije da budu web based :). Cracks me up every time.

PS. Sta ce biti ako je uzrok problema u nekom od podsistema WinInet-a ;) Promenicete mrezni standard da sve masine budu u Bluetooth mrezi ;)
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme