2010-09-21 121 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