2011-11-25 53 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

相關問題