我的申请面临一个非常奇怪的问题......
当我点击FindAsync函数时,我不知道为什么我收到此错误消息:
在数据库'master'中拒绝CREATE DATABASE权限。**
public async Task<IdentityUser> FindUser(string userName, string password)
{
IdentityUser user = await _userManager.FindAsync(userName, password);
return user;
}
这很奇怪,首先我真的没有意识到这样的命令有可能尝试创建数据库......这没有意义!
当我将应用程序切换到其他数据库时出现问题:
应用程序已经并且仍在生产数据库和基础架构上正常运行。 现在我已经将生产数据备份/恢复到开发环境,以便应用一些更改,我开始出现错误。
两个应用程序都已签名......这是一种奇怪的行为......
它真的没意义,像FindAsync这样的命令如何尝试创建数据库?
答案 0 :(得分:4)
这背后的原因是,用户管理器将创建一个DbContext
来查询用户,如果该数据库不存在,该上下文将尝试创建数据库。
由于这是由切换数据库造成的,我猜你也错过了切换用户管理器使用的数据库。
要更改该行为,您需要将数据库初始值设定项更改为null
(默认为CreateDatabaseIfNotExists
):
Database.SetInitializer<YourDbContext>(null);