2010-09-21 124 views
2

我正在研究一個SQL Compact演示應用程序,並且我的安裝項目所做的一件事是將SDF文件複製到用戶的c:\ProgramData文件夾中。然而,當應用程序在用戶的機器上運行,我得到以下錯誤:c: ProgramData中的安全違規問題?

System.Data.EntityException: The underlying provider failed on Open. ---> System.Data.SqlServerCeException: Access to the database file is not allowed. [File name = c:\ProgramData\Foresight Systems\SQL Compact Demo\LocalData.sdf]

我困惑的是什麼導致這個錯誤。這不是c:\ProgramData這種文件的首選位置?我需要在我的安裝項目中做些什麼才能使其發揮作用?謝謝你的幫助。

回答

0

有幾件事情或許檢查(?):

  • 的。自衛隊已經在應用程序正在以管理員身份運行或UAC訪問的只讀
  • 文件屬性被授予?
+0

沒有隻讀屬性。我的應用程序是否需要提升權限才能寫入c:\ ProgramData?它將Log4Net條目寫入子文件夾中,沒有任何問題。 – 2010-09-21 01:16:04

1

我接受了p.campbell的回答,因爲他發現了安全問題。我回過頭去看看c:\ProgramData文件夾的安全選項卡,並且我發現Users組只具有讀取該文件夾的權限。所以,這可能不是放置我的SDF文件的最佳位置。我將發佈一個關於放置文件的單獨問題。

+0

有趣的發現。將有興趣看到其他問題。 – 2010-09-21 19:45:18