Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Web Services, XML
Cache e WebService
venerdì 13 giugno 2008 - 12.20
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
hexstudy
Profilo
| Newbie
15
messaggi | Data Invio:
ven 13 giu 2008 - 12:20
Ho un problema. Io ho un applicativo Web che contiene un WebService con cui ci interfacciamo con programmi Forms.
Questo webservice ha la necissità di autenticare l'utente prima di lavorare, tramite una funzione che ritorna un SessionID, con questo sessionID vengono memorizzate nella chace alcune informazioni.
Questo SessionID viene sempre spedito con le altre funzioni utilizzate per identificare l'utente, la cache ha la scadenza di un giorno successivo a quello dell'operazione.
Il problema è che capita molto frequentemente che il WebService non riconosca più l'utente dopo la seconda operazione come se la SessionID non esistesse più all'interno della cache.
Sapete se c'è un motivo particolare per questo problema e se c'è modo di risolverlo?
Una cosa che mi è venuta in mente è quello di utilizzare un SoapHeader per effettuare ogni volta un login per ogni operazione andando così a abbandonare l'utilizzo della Cache, ma questo mi comporterebbe la modifica del WebService e dell'applicativo che lo usa.
Attendo vostre risposte
Grazie in anticipo a chiunque mi possa aiutare.
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
ven 13 giu 2008 - 12:25
Ciao e Benvenuto,
per cache intendi sul browser o sul server?
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com
hexstudy
Profilo
| Newbie
15
messaggi | Data Invio:
ven 13 giu 2008 - 12:27
Scusa avevo dimenticato.
System.Web.Caching.Cache Cache = HttpRuntime.Cache;
Quindi Cache Server o sbaglio??
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
ven 13 giu 2008 - 12:40
No, dici giusto
. L'ho chiesto per essere sicuro che parlassimo della stessa cosa.
Temo che il problema sia proprio li. La cache è una memoria strana, i dati possono essere rimossi dal server stesso se no ha più spazio.
Per sicurezza su la diagnosi prova ad usare l'application al posto della cache. Se funziona tutto devi rivedere il modo con cui imposti le variavili cache.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com
hexstudy
Profilo
| Newbie
15
messaggi | Data Invio:
ven 13 giu 2008 - 13:41
Ma non è pericoloso scrivere all'interno della application?? Non rischia di diventare troppo grossa e rallentare tutto??
Sai qualche altro metodo alternativo?
Grazie mille
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
ven 13 giu 2008 - 14:24
Certo hai ragione
, ma è solo per fare una prova momentanea sul server di sviluppo.
Se con l'application funziona: il problema è come aggiungi le variabili in cache, in quel caso controlliamo come fai e proviamo a correggerlo. Ma continuerai a lavorare con la cache.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com
hexstudy
Profilo
| Newbie
15
messaggi | Data Invio:
ven 13 giu 2008 - 14:47
Il problema è che non succede in debug oppure sul mio pc da sviluppo ma sul server dove risiede l'applicazione. E fare questa prova mi richiederebbe un pò di tempo, anche xkè ovviamente appena aggiorno l'applicazione non succede subito ma dopo poco più di una giornata di lavoro.
Non sai come poter verificare in altro modo? Ad esempio come si può verificare lo stato della dimensione della Cache e vedere qual'è la sua dimensione massima?? Sono impostazioni da Web.Config??
Se mi dici che devo per forza fare questa prova, la faccio così lunedì mattina ho il responso.
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
ven 13 giu 2008 - 15:02
Mi basta l'ultimo tuo messaggio. Il fatto che non si presenti il problema sulla tua macchina o sul server di sviluppo significa che il server dopo aver saturato la ram fa pulizia per recuperare risorse.
Normalmente la cache non dovrebbe durare così tanto, nel tuo caso è un giorno se non ricordo male, puoi pensare si salvare i dati sul db, ma questo rallenterebbe la tua applicazione oppure... mi hai fatto venire un'ideuzza:
Puoi sfruttare il parametro onRemoveCallback della funzione add della cache:
http://msdn.microsoft.com/en-us/library/system.web.caching.cache.add.aspx.
Questo parametro accetta un delegato (ovvero un puntatore a funzione) da richiamare quando la cache viene rimossa.
Quando e solo quando la variabile cache viene rimossa puoi andare a salvarla nel DB. Questo libera risorse ram, che nel tuo caso sono preziose.
Alla bisogna se non trovi la variaible cache puoi andare a pescare i tuoi valori nel DB e se vuoi cancellandoli dopo la lettura.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com
hexstudy
Profilo
| Newbie
15
messaggi | Data Invio:
ven 13 giu 2008 - 15:16
Bravo e li ti voglio...
Avevo già pensato di controllare quando quelle Chiavi nella cache venivano eliminate ma senza alcun risultato sembrano letteralmente sparire senza dare nessun evento.
Io non so che fare
Considera che però la mia cache contiene solo le sessioni effettuate tramite WS con scadenza 1gg.
Ci lavorano al massimo per ora 4 utenti via WS
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
ven 13 giu 2008 - 15:27
mmm, non credo che la cache abbia una funzionalità particolare in questo caso.
Fai una prova in locale mettendo la scadenza della cache a 1/3 minuti e guarda se ti chiama il delegato.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com
hexstudy
Profilo
| Newbie
15
messaggi | Data Invio:
ven 13 giu 2008 - 16:18
Ho messo la scadenza a 5 secondi e
Key: soap.session.user.9bef6dc1-4469-450b-9a96-83c346d07965 Value: 00000000-0000-0000-0000-000000000001 Reason: Expired
Ma con questo cosa vuoi verificare?
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
ven 13 giu 2008 - 16:23
Volevo verificare che parta la chiamata al delegato. A questo punto c'è da capire perchè non parte sul server.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com
Torna su
Stanze Forum
Elenco Threads
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 !