如何将数据库从Local更改为Host以使用Identity模型

时间:2017-11-02 15:05:11

标签: asp.net-mvc-5 asp.net-identity

我有一个位于App_Data文件夹的数据库,其下面是连接字符串:

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-mydb-20171102055914.mdf;Initial Catalog=aspnet-mydb-20171102055914;Integrated Security=True"
  providerName="System.Data.SqlClient" /> 


我已经将它用于Asp Identity User Manager Model。

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}

但我想使用位于服务器中的数据库。我的服务器连接字符串结构类似于:

<add name="DefaultConnection" connectionString="metadata=res://*/Models.Database.mydbModel.csdl|res://*/Models.Database.mydbModel.ssdl|res://*/Models.Database.mydbModel.msl;provider=System.Data.SqlClient;provider connection string='data source=134.54.96.45,1355;initial catalog=Db_Server;user id=&quot;serverUser&quot;;password=serverPass;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />


服务器连接字符串可以正常用于其他模型。但是当我想使用ASP Identity Model时,它会导致错误。我怎么解决不了?

1 个答案:

答案 0 :(得分:0)

我通过创建一个标准连接字符串来修复此问题,该字符串指向ASP.NET标识表所在的数据库。

<add name="DefaultConnection" connectionString="Data Source=134.54.96.45,1355; Initial Catalog=Db_Server; User ID=&quot;serverUser&quot;; Password=serverPass; Connect Timeout=60;" providerName="System.Data.SqlClient" />

我不知道为什么Identity Model只使用这个连接字符串以及这些连接字符串之间的不同之处。
但这最后对我来说是正确的。