FindAsync - 数据库'master'中的CREATE DATABASE权限被拒绝

时间:2018-01-25 10:02:33

标签: c# .net

我的申请面临一个非常奇怪的问题......

当我点击FindAsync函数时,我不知道为什么我收到此错误消息:

  

在数据库'master'中拒绝CREATE DATABASE权限。**

public async Task<IdentityUser> FindUser(string userName, string password)
{
    IdentityUser user = await _userManager.FindAsync(userName, password);
    return user;
}

这很奇怪,首先我真的没有意识到这样的命令有可能尝试创建数据库......这没有意义!

当我将应用程序切换到其他数据库时出现问题:

应用程序已经并且仍在生产数据库和基础架构上正常运行。 现在我已经将生产数据备份/恢复到开发环境,以便应用一些更改,我开始出现错误。

两个应用程序都已签名......这是一种奇怪的行为......

它真的没意义,像FindAsync这样的命令如何尝试创建数据库?

1 个答案:

答案 0 :(得分:4)

这背后的原因是,用户管理器将创建一个DbContext来查询用户,如果该数据库不存在,该上下文将尝试创建数据库。

由于这是由切换数据库造成的,我猜你也错过了切换用户管理器使用的数据库。

要更改该行为,您需要将数据库初始值设定项更改为null(默认为CreateDatabaseIfNotExists):

Database.SetInitializer<YourDbContext>(null);