Natrag   Forum.hr > Informatička tehnologija > Za napredne korisnike > Programiranje

Programiranje Za programere i one koji to žele postati ...

Odgovor
 
Tematski alati Opcije prikaza
Old 16.02.2018., 17:13   #1
ASP NET MVC entry point

Pozdrav,

pravio sam nekakvu jednostavnu log funkciju koja će mi zapisati zadani string u željeni file...i slučajno sam otkrio ako postavim taj log u index metodu home controlera da dopijem dupli log zapis. (Index metoda se iz nekoga razloga odvrti dva puta)

Ako bi postavio log u neku drugu metodu home kontrolera, sve će se uredno izvršiti samo jednom (naravno ukoliko URL request trigira metodu kontrolera koju provjeravam.)

E sad, pokušavam otkriti zašto mi se index metoda trigira dva puta, ali ne uspjevam baš.
Htio bih log postaviti u kod koji se izvršava prije poziva kontrolera, ali neznam gdje bi to trebalo biti?

Postavljao sam već logove u global.asax file, ali sve što je tamo se izvršava samo jednom nakon buildanja programa i ne pomaže mi u traženju uljeza.

Koji je onda pravi entry point od kuda bi trebao krenuti sa postavljanjem logova i slijeđenjem izvršavanja koda?

Hvala.
bozoou is offline  
Odgovori s citatom
Old 16.02.2018., 19:34   #2
Ovo bi trebalo pristup kodu, index() izgleda kao nešto što se može pojaviti na više mjesta. Ako su to pogrešna mjesta(local, refreshable controller) onda je normalno da ti se okida više puta. Debug bi trebao pomoći.
__________________
Ne očajavamo, zato što se ne nadamo nikom. Ničemu dobrom, ničemu lošem tu ne nada se niko.
I sa tom diplomom, i sa šljakom sam se slik’o. Rintao k'o magarac, sve dok nisam rikn'o.
mr-crime is offline  
Odgovori s citatom
Old 19.02.2018., 17:58   #3
Quote:
mr-crime kaže: Pogledaj post
Ovo bi trebalo pristup kodu, index() izgleda kao nešto što se može pojaviti na više mjesta. Ako su to pogrešna mjesta(local, refreshable controller) onda je normalno da ti se okida više puta. Debug bi trebao pomoći.
Nasao sam na kraju što ga je vrtilo...imao sam u CSSu:
PHP Code:
background-imageurl(""
...i to je generiralo novi request koji bi završio u home controleru, index metoda.

Nego jedno kratko pitanjce, da ne otvaram novu temu.
Koliko i kako žive static variable unutar ASP NET MVCa ?

Koliko sam shvatio, static variable žive od buildanja programa do buildanja...ali nije mi jasna sljedeća situacija. Ako recimo imam:

PHP Code:
static string log {get;set;} = ""
i sada po potrebi nešto upisujem u taj log..u konačnici prije nego se HTML prosljedi na client side, taj log koristim za nešto i resetiram ga ponovno u prazan string.

Log je znači vrijednost koju punim za vrijeme sessiona od HTTP requesta do odgovora servera ka clientu.

Da li se može dogoditi da server uslijed dva paralelna HTTP requesta, dodaje vrijednosti u log varijablu s obje strane istovremeno?

Ili se mora prvi session završiti da bi server obradio drugi session. Pod takvim okolnosima log će uvijek biti resetiran prije nego ga sljedeći session počme koristiti?
bozoou is offline  
Odgovori s citatom
Old 19.02.2018., 18:17   #4
Da, te aplikacije rade po http requestu, ali sve u jednoj core aplikaciji. Dakle static stoji tu dok je aplikacija(web app) upaljena.

Pogledaj ovo.
__________________
Ne očajavamo, zato što se ne nadamo nikom. Ničemu dobrom, ničemu lošem tu ne nada se niko.
I sa tom diplomom, i sa šljakom sam se slik’o. Rintao k'o magarac, sve dok nisam rikn'o.
mr-crime is offline  
Odgovori s citatom
Old 16.03.2018., 01:14   #5
U asp.netu u global asax mozes overrideat metodu Application_BeginRequest ako zelis logirati na pocetku i mislim da je end request na kraju.

Sve sto se poziva sa servera je request i css, datoteke, fontovi, js itd. Zato ti je background napravio request.

Logiranje preko static varijable je nesto najgore sto mozes. Static varijabla se dijeli izmedju svih korisnika na serveru, te ako imas vise korisnika istovremeno dobit ces kaos.

Ili spremaj direktno u bazu, ili trpaj u HttpContext koji je vezan uz session, pa na end request sve iz sessiona spremis u bazu.


Poslano sa mog Moto E (4) Plus koristeći Tapatalk
master_dju is offline  
Odgovori s citatom
Odgovor


Tematski alati
Opcije prikaza

Kreni na podforum




Sva vremena su GMT +2. Trenutno vrijeme je: 04:13.