ASP.NET 核心发布到 Azure 失败,并显示数据库更新



发布具有数据库迁移功能的 ASP.NET Core Web 应用失败,并在 Visual Studio 中出现以下错误

Web deployment task failed. (Make sure the database connection string for the server is correct and that you have appropriate permission to access the database. (Web Deploy Provider is "dbFullSql").
Error details:Could not complete an operation with the specified provider ("dbFullSql") when connecting using the Web Management Service. This can occur if the server administrator has not authorized the user for this operation. dbFullSql http://go.microsoft.com/fwlink/?LinkId=178034  Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_NOT_AUTHORIZED_FOR_DBFULLSQL.)

从cmd行:

"C:DevNeptune.WebNeptune.Web.csproj" (default target) (1) ->
(MSDeployPublish target) ->
C:Program Filesdotnetsdk2.1.300SdksMicrosoft.NET.Sdk.Publishbuildnetstandard1.0PublishTargetsMicrosoft.NET.Sdk.Publi
sh.MSDeploy.targets(139,5): error : Web deployment task failed. (Make sure the database connection string for the server is corr
ect and that you have appropriate permission to access the database. (Web Deploy Provider is "dbFullSql"). [C:DevNeptune.WebNeptune.Web.csproj]
C:Program Filesdotnetsdk2.1.300SdksMicrosoft.NET.Sdk.Publishbuildnetstandard1.0PublishTargetsMicrosoft.NET.Sdk.Publish
.MSDeploy.targets(139,5): error : Error details:Could not complete an operation with the specified provider ("dbFullSql") when c
onnecting using the Web Management Service. This can occur if the server administrator has not authorized the user for this oper
ation. dbFullSql http://go.microsoft.com/fwlink/?LinkId=178034  Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERR
OR_USER_NOT_AUTHORIZED_FOR_DBFULLSQL.) [C:DevNeptune.WebNeptune.Web.csproj]
0 Warning(s)
1 Error(s)

如果我注释掉本地数据库连接字符串并使用连接字符串直接将更新应用于 Azure SQL 数据库(即直接在代码中连接到数据库(,这是一件奇怪的事情,它可以正常工作:

C:DevNeptune.Web>dotnet ef database update
Applying migration '20180613012042_CreateDate'.
Done.

我做过/检查过的事情:

  1. Azure 数据库服务器防火墙设置在允许列表中显示我的客户端 IP 地址
  2. 我可以连接到Visual Studio中的数据库并查看表格。应用数据库更新后,我可以看到对架构的更改
  3. 我尝试从 VS 内部和 CL 发布,并且在应用数据库迁移时结果相同。如果没有迁移或未选中"应用迁移"复选框,则发布工作正常。
  4. db 用户是我为数据库创建的唯一用户,使用该用户的所有其他交互都可以正常工作。
  5. 这在过去是有效的。不确定它是否在升级到 2.1 或在此之前停止,但此故障最近开始。

根据你的描述,这太奇怪了。 这是一篇关于将现有的 asp.net 核心 2.0 应用程序迁移到您可以参考 asp.net 核心 2.1 的文章。

以及使用 EF 核心迁移管理数据库架构和种子设定数据。

如果要在运行时应用迁移,可以在 配置方法中添加以下代码Startup.cs.

using (var scope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
{
scope.ServiceProvider.GetRequiredService<ApplicationDbContext>().Database.Migrate();
}

有关更多详细信息,您可以参考此线程。

相关内容

  • 没有找到相关文章

最新更新