【发布时间】:2018-07-03 23:57:18
【问题描述】:
两部分问题。
我已经使用 VS 2015 Update 3 创建了一个 ASP.NET MVC 5 应用程序。我在本地机器上完成了这个项目。突然,我无法再通过 SQL Server 对象资源管理器连接到 .mdf 数据库文件并收到以下错误:
无法打开数据库“aspnet-DevilsTowerMVC-20180327093314”,因为它是 852 版本。此服务器支持 782 及更早版本。不支持降级路径。无法打开新数据库“aspnet-DevilsTowerMVC-20180327093314”。 CREATE DATABASE 被中止。无法将文件“D:\VS2015\DevilsTowerMVC\App_Data\aspnet-DevilsTowerMVC-20180327093314.mdf”附加为数据库“aspnet-DevilsTowerMVC-20180327093314”。
我的机器上安装了 SQL Server 2012 (11.0.5388.0)。该项目是使用 VS 2015 创建的。我在 SO 上看到了 similar question,但这并没有提供明确的答案。
我刚刚在 VS 2015 中创建了另一个 ASP.NET MVC 5 应用程序,并且登录工作完美(如 SQL Server 12.00.2000)。所以我不明白我现有的项目是如何神秘地恢复到旧版本的?
根据我的研究,SQL Server 2016 的内部数据库版本号为 852,SQL Server 2014 的内部数据库版本号为 782。我安装的 SQL Server 2012 的内部数据库版本号为 706,所以我不知道为什么它在错误消息中提到“782”。
(Q1) 如果我无法降级,那么我唯一的选择可能是安装 SQL Server 2016 Express?这是正确的吗?正确执行此操作的步骤是什么?如果没有,有没有办法“重置”它 - 新创建的项目可以正常工作?
(Q2)如何将其转换为在 SSMS 中使用常规的非基于文件的 SQL Server 数据库?
我的 web.config:
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-DevilsTowerMVC-20180327093314.mdf;Initial Catalog=aspnet-DevilsTowerMVC-20180327093314;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb"/>
</parameters>
</defaultConnectionFactory>
</entityFramework>
更新 1
我从here 下载了 SQL Server 2016 SP1 Express Edition。我选择了下载媒体/LocalDB 选项。它似乎安装正确。但是,当我在 Server Explorer 中选择 DefaultConnection 并点击刷新时,我得到与以前完全相同的错误。我尝试了连接字符串中的所有组合,例如:(LocalDb)、(LocalDb)\v11.0 和 (LocalDb)\MSSQLLocalDB。
当我查看 C:\Windows\SysWOW64 文件夹时,我看到 SQLServerManager11.msc 配置管理器仍然安装。
更新 2
我从 App_Data 文件夹中删除了 .mdf 文件,并尝试通过注册新用户来重新创建它。创建了一个 DefaultConnection.mdf 文件,但是当我尝试在服务器资源管理器中添加它时,我得到了与以前相同的版本错误消息。谁能建议一种兑换项目登录系统的方法?
【问题讨论】:
标签: asp.net sql-server asp.net-identity sql-server-express localdb