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软件包以查看这是否是错误或损坏的安装。

相关问题