首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接到.mdf文件

连接到.mdf文件
EN

Stack Overflow用户
提问于 2018-07-03 23:57:18
回答 2查看 1.7K关注 0票数 0

两部分的问题.

我使用VS 2015更新3创建了一个ASP.NET MVC 5应用程序。突然,我无法再通过Server对象资源管理器连接到.mdf数据库文件并获得以下错误:

数据库'aspnet-DevilsTowerMVC-20180327093314‘不能打开,因为它是852版本。此服务器支持782及更早版本。不支持降级路径。无法打开新的数据库'aspnet-DevilsTowerMVC-20180327093314‘。CREATE数据库被中止。无法将文件'D:\VS2015\DevilsTowerMVC\App_Data\aspnet-DevilsTowerMVC-20180327093314.mdf‘附加为数据库'aspnet-DevilsTowerMVC-20180327093314’。

我的机器上安装了SQL Server 2012 (11.0.5388.0)。该项目是利用VS 2015创建的。我在上面看到了一个相似问题,但这并没有给出一个明确的答案。

我刚刚在VS 2015中创建了另一个ASP.NET MVC 5应用程序,登录非常有效(SQLServer12.00.2000说)。因此,我不明白我现有的项目是如何神秘地恢复到旧版本的?

根据我的研究,Server 2016的内部数据库版本号为852,Server 2014的内部数据库版本号为782。我安装的SQL Server 2012的内部DB版本号为706,所以我不知道为什么它在错误消息中提到'782‘。

(Q1)如果我不能降级,那么我唯一的选择可能是安装SQLServer2016Express?这是正确的,正确的步骤是什么?如果没有,是否有办法“重置”它--新创建的项目工作得很好?

(Q2)如何将此转换为在SSMS中使用常规的非基于文件的Server数据库?

我的web.config:

代码语言:javascript
复制
<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

我从SP1下载了Server 2016 这里速成版。我选择了Download /LocalDB选项。它似乎安装正确。但是,当我在Server中选择DefaultConnection并进行刷新时,我会得到与前面完全相同的错误。我尝试了连接字符串中的所有组合,例如:(LocalDb)(LocalDb)\v11.0(LocalDb)\MSSQLLocalDB

当我查看C:\Windows\SysWOW64 64文件夹时,我看到仍然安装了SQLServerManager11.msc配置管理器。

更新2

我从.mdf文件夹中删除了App_Data文件,并尝试通过注册一个新用户重新创建它。创建了一个DefaultConnection.mdf文件,但是当我尝试在Server中添加它时,我得到了与以前相同的版本错误消息。有人能建议一种方法来赎回项目登录系统吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-10 04:05:18

通过Yair到这个问题的回答,我设法解决了这个问题。

我首先物理卸载了LocalDb的所有版本,除了与我的Server 2012版本相对应的v11.0版本之外,使用控制面板->程序和特性。

然后使用命令行,发出以下命令:

sqllocaldb删除"v11.0“ sqllocaldb创建"v11.0“

这解决了当我尝试注册一个新用户时,基于文件的LocalDb实例被删除而不是重新创建的问题。

此时,我可以在没有任何错误消息的情况下注册新用户。然而,我想离开LocalDB。

因此,我在SSMS中创建了一个空数据库,并将.mdf文件附加到它。我更新了连接字符串以使用实际的DB和Integrated (用于本地开发)。在运行该应用程序时,我得到了一些权限错误,但是通过创建一个新用户并给予它读和写访问权限,我能够弥补这个错误。

代码语言:javascript
复制
<add name="DefaultConnection" 
  connectionString="Initial Catalog=DevilsTower;Data Source=Development;Integrated Security=SSPI;" 
    providerName="System.Data.SqlClient" />
票数 0
EN

Stack Overflow用户

发布于 2018-07-04 00:32:44

令人遗憾的是,你不能降级,你必须得到同样的版本。2)据我所知,您可以用.mdf文件恢复数据库,但从技术上讲,它们都应该是基于文件的。不过,如果您有mdf文件,则可以还原它,然后相应地更改连接字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51164180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档