Wenn ich im Konstruktor dieses Controllers einen Haltepunkt festlege, sehe ich eine system.ObjectDisposedException von userManager.Users. Warum kann .NET mir einen entsorgten UserManager geben? Ich habe andere Steuerungen, die die gleiche Art und Weise und ihre UserManagers funktionieren (dieses stirbt, wenn es nennt GetUserAsync)Warum wird meinem Controller ein UserManager übergeben?
[RequireHttps]
public class HomeController : Controller
{
private readonly UserManager<ApplicationUser> _userManager;
private readonly RegionService _regionService;
private readonly ILogger _logger;
public HomeController(UserManager<ApplicationUser> userManager, RegionService regionService, ILoggerFactory loggerFactory)
{
_userManager = userManager;
_regionService = regionService;
_logger = loggerFactory.CreateLogger<HomeController>();
}
[HttpGet]
public async Task<IActionResult> Index()
{
var user = await _userManager.GetUserAsync(HttpContext.User);
...
}
... aufgebaut zu sein scheinen, und ich sollte keine Datenbank in Home/Index zugreifen ; Ich werde das später ändern
Edit: Dies ist, wie Dienste konfiguriert werden:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddApplicationInsightsTelemetry(Configuration);
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
options.Password.RequireDigit = true;
options.Password.RequireLowercase = false;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequireUppercase = false;
options.Password.RequiredLength = 6;
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddMvc();
// Add application services.
services.AddTransient<IEmailSender, AuthMessageSender>();
services.AddTransient<ISmsSender, AuthMessageSender>();
services.Configure<AuthMessageSenderOptions>(Configuration);
services.AddTransient<RegionService>();
// require SSL
services.Configure<MvcOptions>(options =>
{
options.Filters.Add(new RequireHttpsAttribute());
});
}
Wie sind Ihre Dienste eingerichtet? –
@NateBarbettini in der ConfigureServices-Methode Startup.cs? –
@NateBarbettini Es gibt nichts, das speziell einen UserManager von dem, was ich sehen kann, eingerichtet hat (ich bin neu bei ASP.NET) –