在MVC应用程序上破坏登录和帐户注册

时间:2016-11-06 04:35:31

标签: asp.net asp.net-mvc asp.net-mvc-4

你好我是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很天真,所以希望修复很简单。如果我未能提供重要信息,请告诉我,我会更新问题。此外,我们非常感谢您对错误的解释。谢谢你的时间。

1 个答案:

答案 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目录中,将其更改为您的实际数据库目录。

如果尝试按查询附加不起作用,请尝试以下步骤:

  1. 如果IIS / IIS Express池仍在运行,请将其停止。
  2. 在服务器PC上打开Windows Powershell实例(如果不存在,请先安装它)。
  3. 运行以下命令:

    sqllocaldb.exe stop v11.0
    sqllocaldb.exe delete v11.0
    sqllocaldb.exe start v11.0
    
  4. 在项目中重新创建数据库实例,包括服务器资源管理器中的数据连接(删除然后创建)。

  5. 在开发机器中重新运行项目,然后将所有必需的文件复制到服务器PC。此时应该(重新)生成数据库实例。
  6. 在服务器PC上重新启动IIS / IIS Express池。
  7. 此外,您可以从程序包管理器控制台运行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

    Cannot attach the file 'C:\inetpub\wwwroot\MvcApplication10\App_Data\aspnet-MvcApplication10-20130909002323.mdf' as database 'aspnet-MvcApplication10-20130909002323'