2

そのため、突然このエラーが発生しましたが、解決方法がわかりません。MyDomain\MyUserはサーバーユーザーの下に表示されますが、CodeFIrstを使用しているため、データベースがまだ作成されていないためMyDatabase、ユーザーに追加できません。

これが私のコードです:

ConnectionString:

<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管理コンソールを開きます
  • アプリケーションプールノードを開きます
  • Webサイトに対応するアプリケーションプールを選択します
  • アプリケーションプールを右クリックして、[詳細設定]を選択します
  • [プロセスモデル]セクションで[ID]を選択します
  • LocalSystemを選択します

ここに画像の説明を入力してください

于 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 SecurityしてPooling。それが機能するかどうかを確認します

于 2012-11-28T15:08:46.157 に答える