Variabili della durata dell'aaplicazioni

lunedì 06 aprile 2009 - 16.57

rstella Profilo | Newbie

Salve a tutti.
Ho un grande problema, ho la necessità di salvare delle variabili globali in un Web Service che si liberino la memoria allocata solo al riavvio dell'IIS.
Purtroppo non riesco a farlo, le vie che ho intrapreso sono qieste:
- Aggiunta di una classa con variabile statica , dopo un pò in tale variabile non trovo più nulla.
- Aggiunta di variabile nella classe Application , dopo un po alla lettura non trovo più niente.
- Aggiunta di un application Pool con tutti i check spuntati, non è servito a nulla.
- Aggiunta della variabile nella Cache, dopo un pò non la trovo più neache li.

Qualcuno può aiutarmi , magari inviandomi un esempio?
La mia mail è renato-stella@libero.it

Ringrazio in anticipo tutti quelli che mi aiuteranno.
Stella Renato

rossimarko Profilo | Guru

Ciao,

da quello che dici il problema mi sembra che sia dovuto al fatto che è stata lasciata attiva la spunta sull'application pool che spegne il processo dopo 20 minuti di inattività
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

rstella Profilo | Newbie

Ciao purtroppo no ho spuntatto tutti i flag presenti nell'Application Pool
Stella Renato

rossimarko Profilo | Guru

Considera che per quanto riguarda la cache potrebbe svuotarsi prima della fine del ciclo dell'applicazione perchè in base alla memoria utilizzata la cache può essere ripulita, ma l'application e le variabili statiche no. Quindi io controllerei bene le varie opzioni dell'application pool (adesso non riesco a verificarle e quindi non saprei dirti quali vanno spuntate e qualli no).

Come mai ti serve che la variabile sia sempre valorizzata? E' un contatore o sono impostazioni di configurazione? Nel secondo caso basterebbe verificare l'oggetto in memoria e se è vuoto caricare i dati come se fosse il primo caricamento
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

rstella Profilo | Newbie

no è un controllo di licenze ho bisono di sapere sempre quanti operatori sono connessi contemporaneamente, per questo ho bisogno di una variabile
dove mi salvo l'identificativo dell'utente e deve rimanermi attiva per tutto l'arco dell'applicazione.
Le variabili nell'application pool per non sbagliare le ho spuntate tutte.
Stella Renato

rossimarko Profilo | Guru

Prova allora a mandarci qualche schermata di configurazione dell'application pool così proviamo a verificare
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

rstella Profilo | Newbie

Le opzioni sono tutte spuntate, vado male a mandarvi le schermate, ma ti confremo che sono tutte spuntate.
Stella Renato

rossimarko Profilo | Guru

Di solito in questi casi le voci che NON devono essere selezionate nelle proprietà dell'application pool sono:
- Sezione Recycling --> Recycle worker process (in minutes)
- Sezione Performance --> Shutdown worker process after being idle for (time in minutes)


-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

rstella Profilo | Newbie

Confermo il non selezionamento di tali voci.
Anche tutte le altre non sono selezionate non so questo va bene oppure no.
Stella Renato

rossimarko Profilo | Guru

Di solito nelle altre lascio i valori di default, tipo nel request queue limit e nella sezione healt.

Dopo quanto tempo si azzerano le variabili? Hai già fatto alcune verifiche in termini di tempo?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

rstella Profilo | Newbie

dopo una decina di minuti.
Provo a settare le opzioni di default nelle altre e faccio una prova.
Stella Renato

rstella Profilo | Newbie

Ciao ho aggiunto il flag al health enable pinging 30 second (come da default).
Non riesco a capire il motivo ma ora sembrerebbe funzionare qualcuno sa dirmi il motivo.
Continuo a testare l'applicazione ...... mi sembra strano.
Stella Renato

rossimarko Profilo | Guru

>Ciao ho aggiunto il flag al health enable pinging 30 second (come
>da default).
>Non riesco a capire il motivo ma ora sembrerebbe funzionare qualcuno
>sa dirmi il motivo.
>Continuo a testare l'applicazione ...... mi sembra strano.
>Stella Renato
>

Qui trovi spiegato a cosa servono i check di quella sezione: http://www.devx.com/dotnet/Article/17400/0/page/4

Non so dirti se il comportamento da te riscontrato sia nella norma o se sia un problema dovuto a qualche configurazione anomala. Comunque la maggiorparte delle impostazioni di default di solito sono corrette, a parte quelle sui tempi di shutdown del processo e sul riciclo che vanno configurate in base alle proprie esigenze
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5