2011-04-07 58 views
1

我正在开发一个使用SQL Compact 4.0作为其数据存储的WPF/Entity Framework 4应用程序。我试图将数据库(SDF)文件存储在c:\ProgramData\MyCompany\MyApp\文件夹中。当我的应用程序尝试打开数据存储时,出现以下异常:“底层提供程序在打开时失败。”如果文件存储在用户文件夹中,则文件可以正常打开。EntityFramework:从ProgramData文件夹读取SDF文件?

我认为这个例外是由于安全原因引发的 - 我怀疑Windows,.NET,EF或SQL Compact不会让我将SDF文件存储到c:\ProgramData文件夹中。那是对的吗?如果是这样,我感到困惑,因为这通常是我的应用程序存储文本日志的地方。如果我可以登录到该文件夹​​,为什么我不能将SDF文件放在那里?

如果我无法存储到c:\ProgramData,应该在哪里存储文件,以便同一个文件可以被一台机器上的多个用户访问?谢谢你的帮助。

回答

0

我想你需要修改访问控制列表MyApp文件夹给用户RW

1

在您的连接字符串中,您是否使用绝对路径或相对路径引用数据库位置?

如果您使用相对路径引用,并且您的应用程序未从“c:\ ProgramData \ MyCompany \ MyApp \”运行,则可能是问题,因为应用程序会一直尝试在其运行的文件夹中查找数据库文件。

让我知道是否有帮助。

Riana

+0

添加完整路径到我的配置文件,解决了这个问题。谢谢! – 2013-11-09 20:42:50