La condivisione dei dati attraverso i servizi WCF e le pagine aspx
Domanda
Il mio web app espone alcuni servizi (WCF) e ho bisogno di caricare un file XML e 'store' è una variabile statica visibile a tutto il dominio di applicazione. La variabile ha bisogno di essere interrogato e aggiornato sia da un servizio o di una pagina.
La cosa è, carico che variabile nel Application_Start (Global.asax.cs), ma quando una richiesta di servizio arriva la variabile è vuota e deve essere 'ricaricato', e che accade con ogni servizio (3), così io alla fine con 3 istanze di una variabile statica.
Come faccio a garantire che tutte le mie applicazioni sono in esecuzione sullo stesso dominio di applicazione? quello che sto facendo di sbagliato?
VS2008 SP1 sulla scatola Win7 RTM
Soluzione
Ok, quindi dopo un po 'di ricerche ho trovato la soluzione. Sarò distacco la soluzione qui e molti link che mi ha aiutato a trovarlo.
servizi WCF e le pagine ASPX vengono eseguiti sullo stesso AppDomain durante l'esecuzione side-by-side (di default), il mio problema era che il dominio di applicazione veniva riciclato perché la mia app è stata la creazione di una cartella sotto la cartella principale del mio app. Quando mi sono trasferito che la creazione di distanza dalla applicazione stessa, il dominio di applicazione quited riavviando così tengo sempre i miei valori statici.
Ecco un elenco di post interessante che ho letto e ha aiutato il mio trovare la soluzione:
- servizi WCF e ASP.NET
- Riciclaggio (AppDomain, non lattine)
- Application vs dominio di applicazione
- Gestione processi di lavoro e AppDomain in IIS 7.0 con WMI
- Eliminazione ASP.NET 2.0 Application sottodirectory spegne la il dominio di applicazione
- ASP.NET v2.0 - AppDomain ricicla, più comune di quanto prima