我有一个使用Access文件的卡西尼应用程序。更新的安装程序会覆盖应用程序和数据库。但是,即使在系统重新启动后,应用程序仍会看到旧数据。 (还要手动复制MDB文件以确保它已被替换,但它没有帮助。)为什么Jet OLEDB驱动程序缓存我的MDB文件?
应用程序查看新MDB数据的唯一方法是将其安装到新文件夹。
连接字符串是标准的(我认为):
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";
任何想法是怎么回事,以及如何避免缓存问题?
更新(应答在评论一些问题):
- 我们只能在Windows 7
- MDB永远不会被卡西尼应用程序更新重现此问题。我们创建数据库并将其发送给用户。 - 我们确实确认该文件已被安装程序成功替换。事实上,如果我们手动更换它,也会发生同样的情况。
- Windows重新启动后,问题仍然存在。
您正在使用哪个操作系统?是Vista还是Win7? – mwolfe02
数据保持陈旧多久?我之前在VB6应用程序中遇到过Jet缓存问题,但它与未被刷新足够快的写入有关。 – Gabriel
@ m0sa所以,你有一个正在运行的Web应用程序,并且你想运行一个安装程序来更新它。在替换.mdb文件之前,安装程序执行的操作究竟是什么?你停止网络应用程序?你停止IIS服务?然后,“系统重启”是什么意思? (我们通常所说的是“重启窗口”。)另外,请回答mwolfe02的问题,这很重要。 –