2011-11-25 49 views
8

我有一个使用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重新启动后,问题仍然存在。
+1

您正在使用哪个操作系统?是Vista还是Win7? – mwolfe02

+1

数据保持陈旧多久?我之前在VB6应用程序中遇到过Jet缓存问题,但它与未被刷新足够快的写入有关。 – Gabriel

+0

@ m0sa所以,你有一个正在运行的Web应用程序,并且你想运行一个安装程序来更新它。在替换.mdb文件之前,安装程序执行的操作究竟是什么?你停止网络应用程序?你停止IIS服务?然后,“系统重启”是什么意思? (我们通常所说的是“重启窗口”。)另外,请回答mwolfe02的问题,这很重要。 –

回答

0

您是否尝试过使用 “Microsoft.ACE.OLEDB.12.0” 供应商?我相信它是预安装了Windows 7

1
  1. 转到解决方案资源管理器
  2. 选择mdb文件
  3. 转到属性,还有一个属性
  4. 不要复制设置它是否有更新的复制
0

新的Windows 7/Server 2008安全模型在每种用户的某些条件下呈现文件的虚拟副本。

您是否有可能触及此设计功能,在安装完成后向用户呈现陈旧的快照?应用程序是否可以为安装数据库的用户使用不同的凭据?

User Account Control Data Redirection有一个功能的描述。推荐的解决方案是使用更适合数据的文件夹

+0

从来没有听说过这个功能,很难说没有更多的信息和测试。我们已经解决了每个新版本都会改​​变MDB文件名的问题。我目前没有参与这个项目,所以没有更多的反馈意见。 – tomsame

相关问题