【发布时间】:2018-03-23 20:30:46
【问题描述】:
我使用 C# Identity 登录/注册用户。一切都在本地工作,但是当我实时发布时,注册/登录不起作用。我相信这是由于连接字符串,因为它指向 LocalDb。我一直在尝试将它放入我的服务器数据库中,但是当我这样做时,我得到 ApplicationUser 不是模型的一部分。我现在只使用 AspNetUser 表。有什么建议吗?
默认连接字符串
<add name="DefaultConnection"
connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebApplication1-20171104124939.mdf;Initial Catalog=aspnet-WebApplication1-20171104124939;Integrated Security=True"
providerName="System.Data.SqlClient"/>
服务器连接字符串——我使用 gearhost 作为我的服务器提供商。
<add name="connectionStringName"
connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=den1.mssql1.gear.host;initial catalog=databaseName;user id=userName;password=userPassword;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
这是DefaultConnection 数据库上下文。如果我将其更改为具有复制身份表的服务器连接字符串,它会给我“500,ApplicationUser not part of model”
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
【问题讨论】:
-
为什么您的服务器连接字符串使用 EF 模型?
-
@ErikPhilips 我不确定我是否理解你的问题。但连接字符串是这样生成的,因为我使用 Visual Studio 2015 实体数据模型向导从数据库中使用了 EF 设计器
-
您的问题非常不清楚。您的 web.config 中的这两个连接字符串还是只有 1 个?因为一个是普通连接字符串,另一个是EF连接,不兼容只切换。
-
这些都是我的 web.config 中的连接字符串
-
您可能需要两个连接字符串,一个用于标识,另一个用于 EF 模型。它们可以指向同一个数据库。
标签: c# asp.net-identity ssms