1

這有點奇怪。我正在使用SQL compact 4的東西進行MVC 3代碼的首次開發。它的所有運行良好,但當我嘗試搭建一個新的控制器時,我遇到了問題。我火了新的控制器對話框,選擇我的實體和DataContext的(這兩者都是在同一個解決方案一個單獨的程序),並收到以下錯誤:在ASP.NET MVC 3中不允許訪問sql compact 4 db腳手架

Unable to retrieve metadata for 'MyNamespace.MyClassName'. Access to the database file is not allowed. [ 1884,File name=C:\Program Files\Microsoft Visual Studio 10.0\Common7\EntityContext.sdf,SeCreateFile ]

該文件並不在磁盤上的存在時刻 - EntityContext.sdf文件位於我的App_Data文件夾中。我不確定它是否試圖創建該文件(如果是這樣,爲什麼?),但如果它沒有作爲管理員登錄,那麼它將不具有權限。在這種情況下,我需要定義一個差異工作文件夾或其他東西嗎?

我試過它現在作爲管理員運行,它的工作原理,所以它肯定是試圖創建一個文件在我的程序文件目錄中,必須有一個臨時文件設置的地方?

任何幫助你找到答案的問題是巨大的:)

回答

0

?我也有同樣的問題,但它處理通過部署轉變......

Web.Config中我用全路徑SDF:

<configuration> 
    <connectionStrings> 
     <add 
      name="DBContext" 
      connectionString="Data Source=C:\full-path\DBContext.sdf" 
      providerName="System.Data.SqlServerCe.4.0" /> 
... 

Web.Release.config我更換的connectionString屬性...

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <connectionStrings> 
    <add 
     name="DBContext" 
     connectionString="Data Source=\DBContext.sdf" 
     xdt:Transform="SetAttributes" 
     xdt:Locator="Match(name)"/> 
    </connectionStrings> 
    <system.web> 
    <compilation xdt:Transform="RemoveAttributes(debug)" /> 
    </system.web> 
</configuration> 

釋放後部署正確的 「| DataDirectory目錄|」進行設置而不是「C:\ full-path \」。

雖然我想修復原始問題!

PK :-)

+0

不,不知道從來沒有想過它:( –

0

當試圖導出SQL CE數據庫腳本utils的數量我也面臨着同樣的問題。出現錯誤「不允許訪問數據庫文件」。然後,我剛剛連接到VS2010的那個數據庫文件,複製了連接字符串,並且它工作正常! :)

0

我在使用T4Scaffolding時遇到了這個問題。我通過安裝MVCScaffolding nuget包解決了這個問題,並使用「MVCScaffolding:Controller with read/write action and views,using EF data access code」template。它產生類似的控制器操作和視圖。我無法卸載並重新安裝T4Scaffolding nuget軟件包以查看這是否是錯誤或損壞的安裝。

相關問題