Ho un'applicazione Cassini che utilizza il file di accesso. Il programma di installazione aggiornato sovrascrive sia l'applicazione che il database. Tuttavia, l'applicazione vede ancora i vecchi dati anche dopo il riavvio del sistema. (Anche copiato il file MDB manualmente per assicurarsi che sia sostituito ma non aiuta.)Perché il driver OLEDB di Jet memorizza nella cache il mio file MDB?
L'unico modo per l'applicazione di visualizzare nuovi dati MDB è installarlo in una nuova cartella.
stringa di connessione è di serie (credo):
Connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
HttpContext.Current.Server.MapPath("App_Data\\" +
ConfigurationManager.AppSettings.Get("dbfile")) + ";Jet OLEDB:Database Password=xxxx";
Qualsiasi idea di cosa sta succedendo e come evitare il problema di cache?
Aggiornamento (per rispondere ad alcune domande nei commenti):
- Possiamo riprodurre il problema solo su Windows 7.
- MDB non viene mai aggiornato dall'applicazione Cassini. Creiamo database e li inviamo agli utenti. - Ci siamo accertati che il file fosse stato sostituito con successo dal programma di installazione. In realtà la stessa cosa succede se la sostituiamo manualmente.
- Il problema persiste dopo il riavvio di Windows.
Con quale sistema operativo si sta lavorando? È Vista o Win7? – mwolfe02
Quanto tempo restano i dati obsoleti? Ho riscontrato problemi con la memorizzazione nella cache di Jet nelle app VB6, ma era correlato a scritture che non venivano scaricate abbastanza rapidamente. – Gabriel
@ m0sa Quindi, si dispone di un'applicazione Web in esecuzione e si desidera eseguire un programma di installazione per aggiornarlo. Esattamente quali operazioni esegue il programma di installazione prima di sostituire il file .mdb? Interrompi l'applicazione web? Interrompe il servizio IIS? E poi, cosa intendi per "riavvio del sistema"? (Quello che di solito intendiamo con questo è "riavviare Windows".) Inoltre, per favore rispondi alla domanda di mwolfe02, è importante. –