Novo

Forum kao aplikacija na telefonu

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

  • 7 odgovora
  • 2.305 pregleda

Najnovija ↓

Application_OnEnd & aspnet_wp 04.04.2006. u 22:42 · pre 250 meseci #1
Imam jedno prosto pitanje. Kada se izvršava Application_OnEnd metod? :)

Naime, o čemu se radi.
Na shared hostingu, relativno često (par puta u toku dana, a nekad prođe više od jednog dana), worker process mi počisti aplikaciju. To pretpostavljam, jer mi isprazni Application state. (ako grešim neka me neko ispravi)

Ono što pokušavam jeste da pre nego što će počistiti, ja u OnEnd metod stavim da mi serilalizuje u file određeni objekat.
Međutim, to mi nikako ne polazi za rukom, kao da se event uopšte ne desi. (ovo pokušavam na lokalnoj mašini, gde sam postavio da se proces obnavlja na 10 sekundi).

Gde je problem, tj. da li može to na ovaj način?

Potpis
Two items walk into a ToolBar.
The bartender says, “Can I get you a menu?”
“No thanks, we're looking for a little action.”
Re: Application_OnEnd & aspnet_wp 05.04.2006. u 02:53 · pre 250 meseci #2
Hm... ako se ne varam (a ako se varam, ispraviće me neko), to je kao kad bi hteo da svaki put kada ugasiš računar, on startuje winamp.
Koliko ja shvatam, s obzirom da ti je aplikacija na drugoj (tudjoj) mašini, oni "nasilno" ubijaju tvoj Application objekat, tako da se ne može isvršiti onEnd metod.
Potpis
Winners never quit, quitters never win.
Re: Application_OnEnd & aspnet_wp 05.04.2006. u 13:04 · pre 250 meseci #3
Na stranu zasto Application OnEnd event ne radi, imas dva workaround-a:

1. Da ukines recikliranje procesa (https://www.elitesecurity.org/t123091)
2. Da koristis neki drugi session state sem "InProc"

Za obe ove opcije ti treba pomoc i odobrenje hostera, pa good luck sa tim.

E sad, zasto se OnEnd ne poziva. Sad jedno jednostavno pitanje, ako ti recikliras proces na 10 sekundi, kad stignes da ga pokrenes? Tj, dali si siguran da proces uopste radi? Nema procesa=nema OnEnd eventa. :)

Citat:
VerbatimBOT: Hm... ako se ne varam (a ako se varam, ispraviće me neko)


Hmm, moram da te ispravim :) (btw, ektremno je lako upaliti winamp dok se gasi kompjuter, samo sto ce se ili odmah izagsiti ili biti ubiven shutdownom).
Bas zato sto je ubijanje procesa agresivan proces, recycler to radi malo elegantnije i prvo pokusa da ga "ubije" regularno sto ce dovesti do paljenja OnEnd eventa.

Jedini razlog za koji ja znam da OnEnd ne pali je da anonymous user ne postoji/iskljucen je/account podesen u IISu za anonymous ne valja. Ako na tom hosting serveru mogu da ti pogledaju event log, u gornjem slucaju ce to biti alarmirano u application logu
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: Application_OnEnd & aspnet_wp 05.04.2006. u 14:01 · pre 250 meseci
izmenjeno 1 put, poslednji put vanhulio 05.04.2006. u 14:31
  1. vanhulio05.04.2006. u 14:31zapis iz teksta poruke
#4
Citat:
mmix: Na stranu zasto Application OnEnd event ne radi, imas dva workaround-a:

1. Da ukines recikliranje procesa (https://www.elitesecurity.org/t123091)
2. Da koristis neki drugi session state sem "InProc"


Ovdo nisam bas razumeo, za session, jer meni Session_OnEnd radi. Da li ima, i kakve veze to sa ApplicaionState-om?
edit: Mala ispravka, Session_OnEnd kako izgleda se ne poziva kod recycla, nisam te odmah razumeo sta si pricao.
Ali za Session mi i nije bitno da sacuvam stanje, tako da mi to nije problem.

Citat:

E sad, zasto se OnEnd ne poziva. Sad jedno jednostavno pitanje, ako ti recikliras proces na 10 sekundi, kad stignes da ga pokrenes? Tj, dali si siguran da proces uopste radi? Nema procesa=nema OnEnd eventa. :)


Da, uspem ja da pokrenem aplikaciju za to vreme, i vidim u trace-u da postoji Application["nesto"], ali nakon recycle-a file nije kreiran u direktorijumu. (povecao sam i na 15s da budem siguran :)

Citat:

Jedini razlog za koji ja znam da OnEnd ne pali je da anonymous user ne postoji/iskljucen je/account podesen u IISu za anonymous ne valja. Ako na tom hosting serveru mogu da ti pogledaju event log, u gornjem slucaju ce to biti alarmirano u application logu.

Gde se nalazi tacno log, da pogledam kod sebe u lokalu?
Potpis
Two items walk into a ToolBar.
The bartender says, “Can I get you a menu?”
“No thanks, we're looking for a little action.”
Re: Application_OnEnd & aspnet_wp 05.04.2006. u 14:55 · pre 250 meseci #5
Citat:
vanhulio: Ovdo nisam bas razumeo, za session, jer meni Session_OnEnd radi. Da li ima, i kakve veze to sa ApplicaionState-om?

Da, tema je za session state, ali je uputstvo za ukidanje recikliranja isto :) trebao sam biti malo precizniji sta da pogledas u temi... Mada ukidanje recikliranja, iako je opcija, nije bas preporucljivo. TO je jedini mehanizam koji spasava server od potrebe za periodinim rebootovima u slucaju kad web aplikacija ostavlja zive reference po application objektu bez
Citat:
vanhulio: Da, uspem ja da pokrenem aplikaciju za to vreme, i vidim u trace-u da postoji Application["nesto"], ali nakon recycle-a file nije kreiran u direktorijumu. (povecao sam i na 15s da budem siguran :)

Ok, a na osnovu cega znas da je proces uopste bio recikliran? Baci pogled u event log, recikliranje bi trebalo da ostavi entry.
Citat:
vanhulio: Gde se nalazi tacno log, da pogledam kod sebe u lokalu?

Link za Event log ti je na vise mesta. Direktno ides na Control Panel | Administrative tools pa Event viewer
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: Application_OnEnd & aspnet_wp 05.04.2006. u 15:52 · pre 250 meseci #6
Da li znam da li je pokrenuto recikliranje?! Pa ne znam :)

Kao sto sam rekao u prvom postu, sve je moja pretpostavka, jer nisam siguran sta se desava na tom shared hostingu,
da li dolazi do gasenja worker procesa i pokretanja novog (tu se gubi stanje za sve aplikacije, tako?)
ILI
ocisti samo moj aplikacioni domen?!


Ali ako postavim kod sebe u machine.config-u timeout="0:00:15" gde kaze:
"timeout="[Infinite | HH:MM:SS] - Total life of process, once expired process is shutdown and a new process is created"
Ja vidim u task manageru da se proces na svakih 15 sec menja novim aspnet_wp.exe procesom.
Bilo bi logicno da se ispali OnEnd event.


Ono sto sam primetio da nakon pozivanja HttpRuntime.UnloadAppDomain() iz aspx strane, za koji kaze:
"Terminates the current application. The application restarts the next time a request is received for it."
takodje se ne pozove Application_OnEnd().

p.s U event logu nista nije zapisao.
Potpis
Two items walk into a ToolBar.
The bartender says, “Can I get you a menu?”
“No thanks, we're looking for a little action.”
Re: Application_OnEnd & aspnet_wp 06.04.2006. u 14:23 · pre 250 meseci
izmenjeno 1 put, poslednji put mmix 06.04.2006. u 14:24
  1. mmix06.04.2006. u 14:24zapis iz teksta poruke
#7
Hmm, vazno pitanje, koji IIS je kod tebe a koji na hostingu? (win2000 i XP = IIS5, Windows 2003 = IIS6)
IIS5 i 6 (native) drugacije handluju recikliranje worker procesa. podesavanja u machine.config imaju uticaja samo na IIS5, dok se na IIS6 ova podesavanja obavljaju u samom IIS-u (web aplikcija mora da pripada nekom application pool-u koji je u stvari worker proces, svaki application pool ima svoja podesavanja).

I dalje mi je svejedno cudno da se ne izvrsava. Uradi sledece, podesi timeout na recimo 1min da das sebi vremena da obavis sta treba. Montiraj breakpoint na prvu liniju koda u OnEnd, bilduj aplikaciju i onda je pokreni direktno iz IE-a (ne pokreci je iz vs.net-a). Kad ti ucita stranicu, vrati se u vs.net i izaberi iz menija Debug|Attach to process. Na spisku lociraj worker process i zakaci se na njega. Ako je debuger pauzirao izvrsavanje procesa (zeleno "play" dugme je aktivno), pusti ga da tece dalje na to "play" dugme.
Sacekaj da istekne taj minut i vidi da li ce da stane na tvoj breakpoint. Ako recycler ubije proces a tvoj handler se ne izvrsi vs.net ce se svejedno otkaciti od procesa. Javi sta si uradio...
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: Application_OnEnd & aspnet_wp 06.04.2006. u 21:39 · pre 250 meseci #8
Kod mene ja IIS5, tamo je IIS6.

A za ovo drugo, nemam VS, nezgodna situacija.
Hvala ti na trudu, misilo sam da postoji neko logicno objasnjenje, sta da se radi.

Pogledacu jos malo po netu da nadjem nesto.

pozdrav.
Potpis
Two items walk into a ToolBar.
The bartender says, “Can I get you a menu?”
“No thanks, we're looking for a little action.”
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme