HttpContext.Current.Cache Null Reference Exceptiom

venerdì 01 maggio 2009 - 16.56

zami Profilo | Junior Member

Ciao a tutti,

sto realizzando un'applicazione in asp.net il cui motore appoggia su una variabile di cache.

Infatti per assicurarmi che certe operazioni vengano eseguite ogni 24 ore, imposto nel metodo Start dell'engine questa variabile di Cache associandole una funzione callback: quando la variabile espira viene richiamata la funzione callback, che fa tutte le mie operazioni, e all'ultimo reimposta una nuova variabile di cache con se stessa come callback.

Allo start (richiamato in application.start) va tutto a meraviglia, ma quando la variabile scade e tento di lanciare la stessa routine per creare una nuova variabile di cache che sostituisca la mia, ricevo un errore, il tipico "riferimento a un oggetto non impostato su un'istanza di oggetto".

Frugando un po' nel web ho trovato qualcosa sul fatto che la seconda volta che lancio la routine questa sta in un thread differente dalla prima, per cui non "vede" più l'HttpContext.

Solo che:
1) non ho idea di come bypassare il problema
2) ma nemmeno allo start in teoria doveva trovare un context...giusto? e allora la prima volta come fa??

Grazie... qualunque suggerimento o chiarimento è ben accetto :)

Michela

PS Buon primo Maggio a tutti, quelli belli e quelli brutti :P
"in questo mondo, noi non siamo i passeggeri... siamo l'equipaggio"


======================================================================

EDIT mi rispondo da sola... :P
dev'esserci una legge di Murphy in merito, ho cercato 'sta cosa per giorni e ho trovato la soluzione venti minuti dopo aver chiesto nel forum...

A ogni modo HttpContext è un modo per accedere, dal thread corrente, a HttpRuntime, non legato a thread: quindi lavorando su HttpRuntime e non sul Context non passo per nulla che sia relativo al thread e funziona tutto a meraviglia :D

Qualcuno sa suggerirmi qualche articolo breve e valido sull'uso dei thread in asp.net per piacere?
Direi che devo ampliare la mia cultura... :)
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