ASP.NET身份正在App_Data处请求本地数据库

时间:2019-04-19 16:01:36

标签: asp.net database model-view-controller asp.net-identity

我遇到了错误asking for the App_Data local db,但是我没有在项目中使用本地数据库,而是在服务器上使用在线Db。

enter image description here

以下是我创建网站的步骤:

1-新的ASP.Net Web应用程序-> MVC –个人用户身份验证

2-运行该应用程序,然后注册一个新用户 (这是我认为问题开始的地方)–因为此时,它在App_Data上创建了本地数据库

3-使用SQL Server Management Studio创建SQL Server 2017数据库并添加我的表

4-从数据库中将数据库作为ADO.Net实体数据模型-> EF设计器导入到项目中 (使用新的connectionString)

5-更新DefaultConnection以链接到新数据库

6-运行项目并注册新用户(在新DB上创建的标识表) 我没有将身份表导入ADO.Net实体数据模型

7-通过smarterasp.net在线上传数据库

8-将connectionStrings更新到新的在线数据库

9-继续在网站上工作...

10-发布网站->并要求附加App_Data本地数据库!

在项目中没有引用任何本地数据库。如何在不创建新应用程序的情况下修复此本地数据库问题。

    <connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=SQL5041.site4now.net;
                                                Initial Catalog=DB_Name;
                                                User Id=admin;
                                                Password=***;" 
     providerName="System.Data.SqlClient" />
<add name="RP" connectionString="metadata=res://*/RPDatabaseModel.csdl|res://*/RPDatabaseModel.ssdl|res://*/RPDatabaseModel.msl;
                                    provider=System.Data.SqlClient;
                                    provider connection string=&quot;Data Source=SQL5041.site4now.net;Initial Catalog=DB_Name;User Id=admin;Password=***; MultipleActiveResultSets=true;&quot;" 
     providerName="System.Data.EntityClient" />

1 个答案:

答案 0 :(得分:0)

尝试禁用您的roleManager。在您的web.config中,删除整个roleManager部分,并将其替换为:

<roleManager enabled="false" />

有关更多信息,在您的machine.config中,您可能会有这样的一行:

<add name="AspNetSqlRoleProvider"
    connectionStringName="LocalSqlServer" applicationName="/" type="..."/>

还有这样的连接字符串:

<add name="LocalSqlServer" 
    connectionString="...localdb..." 
    providerName="System.Data.SqlClient"/>
  

因此将角色管理器条目保留在其中使Asp.Net开始   在IdentityDbContext之前查看此本地数据库。卸下   条目意味着它会尝试对条目进行罚款,但会失败。所以唯一   解决方案是完全禁用它。