【问题标题】:Migrations successfull, but IIS thinks otherwise?迁移成功,但 IIS 不这么认为?
【发布时间】:2019-12-09 17:19:58
【问题描述】:

于是我开始了一个新的 ASP.NET Core (2.2) 项目。我创建了一个 SQL 查询,从那里创建了 MSSQL 数据库,然后从那里创建了模型和 DBContext。

当我使用 IIS Express 运行此程序时,一切正常,但当我在项目属性中使用 IIS 时,它抱怨进行迁移。

我确实做了添加迁移 [-Context ] 之后我做了更新数据库 [-Context]

但是当我尝试转到 API 路由时,它说我仍然需要执行“更新数据库”...

我做错了什么?另外,现在可以禁用迁移吗?我显然做了谷歌如何禁用迁移,但我发现的解决方案似乎是针对 .NET Framework 而不是 .NET Core...

【问题讨论】:

  • 您的迁移历史记录表显示什么?我认为表名是 __migrationhistory
  • 您确定您的代码可以访问数据库吗?当您使用 IIS 时,它在 AppPool 的用户下运行。如果您不将其更改为您自己的帐户,它会创建一个新的窗口用户。该用户可以无权访问数据库。而你的程序显示“随机”错误。
  • 首先,我宁愿解决这个问题,我可以禁用迁移,但无论如何我必须让它在某个时间点工作......我得到的错误确实告诉我做“Add-Migration [name]”而不是“Update-Database”,当我两者都做时,它最终告诉我“update-Database”,我现在被困在那里......@TemaTre这可能是问题,但通常这会产生更明显的错误,至少从我在 .NET Framework Web 应用程序中习惯的情况来看?

标签: c# asp.net-core entity-framework-core entity-framework-migrations


【解决方案1】:

您可以尝试清理项目,删除上次迁移吗?然后清理数据库。 (或创建新的空数据库)。构建你的项目,然后运行

update-database -target LastExistedMigrationName

所以,之后执行

Add-Migration [name]
update-database

这将是一个明确的实验。如果出现问题,我会根据错误尝试帮助您。

【讨论】:

    【解决方案2】:

    显然 .NET Core 不会生成与 .NET Framework 相同的适当消息...我的问题是我的应用程序池的用户权限。我选择将我的用户帐户提供给应用程序池用于开发目的,现在一切正常!

    【讨论】:

      猜你喜欢
      • 2015-01-27
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多