你好我是MVC的新手,过去几天一直在寻找我的问题的解决方案,但没有用。
我使用ASP.NET MVC创建了一个简单的博客引擎,在我本地PC上的IIS上安装后,我很快意识到我需要一个数据库才能使登录服务正常工作。
所以我选择在计划用作服务器的PC上使用 LocalDB 。我将文件移到了PC上并安装了我需要的所有东西。一旦我使用 LocalDB 安装 SQLExpress 并重置网站,一切都运行良好。但是,我注意到网站上一些不易编辑的小错字。愚蠢的是,我完全从新版本重新安装了网站,而不仅仅是像智能人员那样更新需要更正的视图。
现在,每当我尝试登录切换帐户或创建新帐户时,我只会收到错误
无法将文件'C:\ inetpub \ wwwroot \ App_Data \ aspnet-FacetBlog-20161020065352.mdf'附加为数据库'aspnet-FacetBlog-20161020065352'。
据我所知,这与我的 LocalDB 实例有关,但我在网上发现的修复似乎没有效果。
顺便说一下,我对SQL很天真,所以希望修复很简单。如果我未能提供重要信息,请告诉我,我会更新问题。此外,我们非常感谢您对错误的解释。谢谢你的时间。
答案 0 :(得分:0)
重新安装站点时,可能已删除数据库目录中的数据库文件aspnet-FacetBlog-20161020065352.mdf
。由于删除MDF文件不会影响已注册的SQL Express实例,因此SQL Express认为数据库仍然存在并尝试连接但失败。
首先,尝试使用SSMS查询附加数据库,如下所示:
EXEC sp_attach_db @dbname=N'aspnet-FacetBlog-20161020065352.mdf', @filename1=N'App_Data\aspnet-FacetBlog-20161020065352.mdf', @filename2=N'App_Data\aspnet-FacetBlog-20161020065352.ldf'
注意:我假设您的MDF文件位置位于App_Data
目录中,将其更改为您的实际数据库目录。
如果尝试按查询附加不起作用,请尝试以下步骤:
运行以下命令:
sqllocaldb.exe stop v11.0
sqllocaldb.exe delete v11.0
sqllocaldb.exe start v11.0
在项目中重新创建数据库实例,包括服务器资源管理器中的数据连接(删除然后创建)。
此外,您可以从程序包管理器控制台运行Update-Database
命令以确保数据库完整性。
如果这些解决方案仍无法完全解决,只需重命名数据库文件并将其附加到项目中,验证连接字符串,然后重试上面的步骤(5)和(6)。
相关问题:
EF5: Cannot attach the file ‘{0}' as database '{1}'
Cannot attach the file ".mdf" as database "aspnet-"
Delete .mdf file from app_data causes exception cannot attach the file as database