2

所以我突然收到这个错误,我不知道如何解决它。MyDomain\MyUser列在服务器用户下,但由于我使用的是 CodeFIrst,因此尚未创建数据库,因此无法添加MyDatabase到用户。

这是我的代码:

连接字符串:

<add name="MyDatabaseConnection" connectionString="Data Source=myServer; Database=MyDatabase.sdf;Trusted_Connection=True;Persist Security Info=True;Pooling=false" providerName="System.Data.SqlClient" />

代码:

public class MyDbContext: DbContext
{
    public MyDbContext()
        : base("MyDatabaseConnection")
    {
    }

    public DbSet<User> Users { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Configurations.Add(new UserConfiguration());
    }
}


public class UserConfiguration : EntityTypeConfiguration<User>
{
    public UserConfiguration()
    {
        ToTable("User");
        Property(u => u.ID).HasColumnName("UserID").HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
    }
}


protected void Application_Start()
{
    Database.SetInitializer<MyDbContext>(new MyDbContextInitializer());
    using (MyDbContext db = new MyDbContext())
    {
        db.Database.Initialize(false);
    }
    ...
}

public class MyDbContextInitializer : DropCreateDatabaseIfModelChanges<MyDbContext>
{
    protected override void Seed(MyDbContextcontext)
    {
        base.Seed(context);
        SeedMembership();
    }

    private void SeedMembership()
    {
        WebSecurity.InitializeDatabaseConnection(ConfigurationManager.ConnectionStrings["MyDatabaseConnection"].ConnectionString, "System.Data.SqlClient", "User", "UserID", "UserName", true);
        WebSecurity.CreateUserAndAccount("doe1", "password11", new { FirstName = "John", LastName = "Doe" });
    }
}
4

2 回答 2

3
  • 打开 IIS 管理控制台
  • 打开应用程序池节点
  • 选择与您的网站对应的应用程序池
  • 右键单击应用程序池并选择“高级设置”
  • 在流程模型部分选择身份
  • 选择本地系统

在此处输入图像描述

于 2012-11-26T06:36:36.267 回答
2

我有一个类似的问题,尝试将您的连接字符串更改为:

<add name="MyDatabaseConnection" connectionString="Data Source=myServer; Database=MyDatabase.sdf;Trusted_Connection=True;" providerName="System.Data.SqlClient" />

所以只需删除Persist Securityand Pooling。看看这是否有效

于 2012-11-28T15:08:46.157 回答