【问题标题】:asp.net mvc Invalid value for key 'attachdbfilename'asp.net mvc 键“attachdbfilename”的值无效
【发布时间】:2012-08-21 12:48:41
【问题描述】:

我目前正在阅读 Manning 的“ASP.NET MVC 4 in Action”一书,并试图让第一个示例工作。

在我的测试应用程序中,我构建了一个简单的模型并创建了一些视图。然后我使用 NuGet 导入了“SQL Server Compact”。

当我最终尝试运行应用程序时,出现以下错误:

Invalid value for key 'attachdbfilename'

这发生在与我正在运行的数据库(SELECT 或其他 CRUD 操作)的每次交互中。有任何想法吗?

【问题讨论】:

    标签: asp.net sql-server asp.net-mvc connection-string


    【解决方案1】:

    虽然,我回答这个问题有点晚了,但我遇到了同样的问题,我通过修改下面的连接字符串解决了这个问题

     <add name="MovieDBContext"
        connectionString="Data Source=.;Initial Catalog=Movies;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
        providerName="System.Data.SqlClient" />
    

    希望这对其他人也有帮助。

    【讨论】:

      【解决方案2】:

      我尝试为这个特定错误找到解决方案,但没有成功。

      最终通过将 .Net Framework 4 更新到 4.0.2 来修复它。补丁和详细信息可以找到Here is the link

      希望对你有帮助

      【讨论】:

        【解决方案3】:

        我认为这里的问题是 web.config 中的字符串不正确 根据您设置的 sql,如果您设置类似这样的内容,该字符串将起作用

        <add name="MovieDBContext"
               connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Movies;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
               providerName="System.Data.SqlClient"
          />
        

        数据源=.\SQLEXPRESS; --> 有时,它会是 Data Source=.; 之后,您需要配置权限才能访问 Folder App_Data 如果您在 Window 7 上进行测试,请右键单击文件夹。财产 安全选项卡 -> 添加具有完全权限的用户网络服务

        【讨论】:

        • 通过更改为data source=localhost\SQLEXPRESS; 并在App_Data 文件夹属性的安全选项卡下添加具有完全控制权的NETWORK SERVICE 用户,它对我有用。谢谢!
        【解决方案4】:

        转到 Web.config 部分并将该部分修改为以下内容以获取要使用的 SQLServerCE4:

        <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
        <parameters>
        <parameter value="System.Data.SqlServerCe.4.0"/>
        </parameters>
        </defaultConnectionFactory>
        </entityFramework>
        

        【讨论】:

          【解决方案5】:

          我猜只有在 .NET Framework v4.0.30319 上使用 SQL Express 时才会出现问题 SqlClient 中的 SQL Server Express 本地数据库运行时支持已添加到 .NET Framework 更新 4.0.2 读取 - http://support.microsoft.com/kb/2544514

          交替使用与此类似的连接字符串

          <add name="EmployeeDbContext" connectionString="Data Source=.;Initial Catalog=Employees;AttachDBFileName=|DataDirectory|\Employees.mdf;Integrated Security=True"
                   providerName="System.Data.SqlClient" />
          

          【讨论】:

            【解决方案6】:
            <add name="myconstr" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|mydata.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> 
            

            上面的连接字符串给出了一个错误,但只要在我的数据库名称之前添加“\”,错误就得到了解决。

            试试这个:

            <add name="myconstr" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\mydata.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> 
            

            【讨论】:

              【解决方案7】:

              您使用的是 SQL Server Compact 4.0:

              确保您已安装 SQL Server Compact 4.0。

              安装VS 2010 SP1 Tools for SQL Server Compact

              将连接字符串更改为:

                <connectionStrings>
                   <add name="MyModelDBContext" connectionString="Data Source=|DataDirectory|mymodel.sdf" providerName="System.Data.SqlServerCe.4.0"/>
                </connectionStrings>
              

              右键单击控制器文件夹并 -> 添加 -> 控制器

              类型:

              YourController
              MVC-Controller with read/write ...
              MyModel
              new datacontext -> APP.Models.DatabaseContext
              

              【讨论】:

                【解决方案8】:

                这是我发现的有关该错误的博客文章。它有点旧,但使用的是 sql server 的 express 版本。 MSDN Link

                那篇博文谈到期望 sql 数据库的服务器名称是本地地址,而不是 /sqlexpress

                还有这个blog post 谈到连接字符串不正确。所以也许检查你到数据库的连接字符串。你的问题可能就在那里。

                【讨论】:

                  【解决方案9】:

                  面对同样的问题,我查看了我的连接字符串,发现“UNC 样式”路径,例如\\MyServer\MyDBServer不允许的,必须对远程主机使用MyServer\MyDBServer 语法对于本地托管的数据库服务器使用.\MyDBServer 语法。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2021-07-18
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多