Opzioni di riciclaggio per l'oggetto stato applicazione ASP.Net
-
06-07-2019 - |
Domanda
Quali sono le opzioni per riciclare l'oggetto stato dell'applicazione ASP.Net? Sto usando quell'oggetto per archiviare le code delle connessioni al database per un livello di accesso ai dati basato sul web. Sono preoccupato che per giorni / settimane / mesi finirò per allocare quantità crescenti di memoria su connessioni a db che non sono più in uso. Le connessioni vengono generate automaticamente quando necessario, quindi preservarle non è estremamente importante.
Sarebbe bello analizzare selettivamente lo stato dell'applicazione e rilasciare ciò che non mi serve. Ma su una base pratica far cadere semplicemente l'intero oggetto e ricominciare da capo funzionerebbe altrettanto bene. Tuttavia, devo fare attenzione che il processo di eliminazione non uccida le connessioni attualmente in uso.
Soluzione
Cosa è successo prima di iniziare a memorizzare le connessioni nella cache? La memorizzazione nella cache ha causato miglioramenti misurabili delle prestazioni o dell'utilizzo delle risorse? Sarei un po 'sorpreso se lo facesse, considerando che ADO.NET fa il pool di connessioni per te.
Non ci sono opzioni di riciclaggio per lo stato dell'applicazione. È per server, per AppDomain.
Per un'altra opzione di memorizzazione nella cache, considerare l'uso dell'oggetto Cache. È anche per applicazione, ma è possibile impostare la scadenza delle voci della cache dopo un periodo di tempo.
Altri suggerimenti
Ho eseguito alcuni test e sembra che l'oggetto dell'applicazione risieda nel pool di app. (Il riciclaggio del pool di applicazioni ha cancellato i dati nell'oggetto application.)