Ich habe eine ältere asp.net Core Identity-Datenbank, und ich möchte ein neues Projekt (eine Web-API) zuordnen.ASP.NET Core Identity nicht injizieren UserManager <ApplicationUser>
Nur für den Test, kopierte ich den Ordner Modelle, und die ApplicationUser-Datei aus dem vorherigen Projekt (ApplicationUser erbt einfach von IdentityUser, keinerlei Änderungen) - DB zuerst scheint eine schlechte Idee zu sein.
Ich Registrierung Identität in ConfigureServices (aber ich hinzufüge, es nicht zu der Pipeline, da meine einzige Absicht ist es, die Users zu verwenden)
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
Meine Erwartung ist, dass jetzt
UserManager<ApplicationUser>
... sollte automatisch in Konstruktoren eingefügt werden.
Wenn Sie jedoch den folgenden Code zu einem Controller hinzufügen: private UserManager _userManager;
public UserController(UserManager<ApplicationUser> userManager)
{
_userManager = userManager;
}
... endet jeder Aufruf der api mit einer Ausnahme: HttpRequestException: Antwortstatuscode Erfolg nicht angeben: 500 (Internal Server Error).
Das Entfernen des Codes "injection" führt zu einer reibungslos funktionierenden Web-API, die Anfragen annehmen kann.
Es ist schwer zu debuggen, da dies auftritt, bevor einer meiner Code erreicht ist. Irgendeine Idee, warum das vorkommt?
P.S. Ich alle Ausnahmen von der Ausnahme-Einstellungen-Fenster Nach der Aktivierung bekam diese:
Ausnahme geworfen: ‚System.InvalidOperationException‘ in
Microsoft.Extensions.DependencyInjection.dllZusätzliche Informationen: Dienst kann nicht lösen für Geben Sie 'Namespace.Data.ApplicationDbContext' ein, während Sie versuchen, 'Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`4 [Namespace.Models. ApplicationUser, Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityRole, Namespace.Data.ApplicationDbContext, System.String] '.
hinzufügen vollständige Serverfehler –