2011-04-07 57 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