2016-10-27 12 views
0

ローカルプロジェクトで認証用のWeb APIを実装しようとしていて、そのプロセスを学んでいます。私はasp.netのチュートリアルを使用していますHere このミラーではエラーが発生しています私は自分自身で持っている問題だから、トラブルシューティングには良い出発点のように感じました。私が行った唯一の変更は、それを私のローカルSQLデータベースに向けています。ウェブAPIのIDを使用してログインできない

私は作成するテーブルの命名規則が気に入らないので、私はオンラインリソースから得たテーブル名を指定するために上書きを追加しました。このオーバーライドを追加すると、ステータスコード500の内部サーバーエラーが発生します。

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

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

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 

     modelBuilder.Entity<IdentityUser>().ToTable("User").Property(p => p.Id).HasColumnName("UserID"); 
     modelBuilder.Entity<IdentityRole>().ToTable("Roles").Property(p => p.Id).HasColumnName("RoleID"); 
     modelBuilder.Entity<IdentityUserRole>().ToTable("UserRole"); 
     modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogin"); 
     modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaim").Property(p => p.Id).HasColumnName("UserClaimID"); 
    } 
} 

機能を維持してテーブル名を変更するにはどうすればよいですか?

+0

エラーは何ですか? –

+0

問題ではありません。私はテーブルの名前を変更しましたが、プロパティを気にしませんでした。 500が返されたときに、デバッグやスタックトレースから何が得られましたか? –

答えて

0

私はそれを一度実行してデフォルトのテーブルスキーマを作成した後、再度実行し、テーブルを更新するためのコード移行が必要であるという問題がありました。私はそれが新しいテーブルを生成すると予想したので、それは混乱でした。私はデータベース全体を削除して、同じオーバーライドメソッドをそのまま使用していました。

+0

今、私はまったく新しい問題を抱えていますが、それは新しい質問になるでしょう:( –

+0

Yerは可能な限り投稿してから10秒です:) –

0

コードが正常に表示され、500エラーがあなたや私たちのために十分な情報ではありません。ウェブAPIのほとんどの例外については、500が返されます。

このガイドの後には、https://www.asp.net/web-api/overview/error-handling/exception-handlingが役に立つので、Web APIのこの問題と今後の問題の根本的な原因を特定するのに役立ちます。

関連する問題