我有一个在ASP.NET Core 3.x上运行的现有Azure应用程序服务。我已将该应用程序升级到今天的ASP.NET Core 5版本。这在我的本地IIS Express服务器上运行正常。但是,当我使用Visual Studio 2019将应用程序发布到应用程序服务时,我收到以下错误:
HTTP错误500.31 - ANCM无法找到本机依赖项
此问题的常见解决方案:
找不到指定版本的Microsoft.NetCore.App或Microsoft.AspNetCore.App。
使用detailed errors enabled,我获得了以下附加信息:
It was not possible to find any compatible framework version
The framework 'Microsoft.AspNetCore.App', version '5.0.0' was not found.
The following frameworks were found:
2.1.20 at [D:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
2.1.22 at [D:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
2.2.11 at [D:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
2.2.14 at [D:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
3.0.3 at [D:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
3.1.6 at [D:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
3.1.8 at [D:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
You can resolve the problem by installing the specified framework and/or SDK.
The specified framework can be found at:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=5.0.0&arch=x86&rid=win10-x86
我知道ASP.NETCore5将立即在Azure应用服务上可用。我是否遗漏了一个步骤?我如何将ASP.NETCore5 Web应用程序发布到Azure应用服务?或者我是否仍需要等到.NET 5运行时在Azure上可用?
- 注意 *:此问题最初是针对ASP.NET Core 5提出的。但是,此问题及其answer仍然与ASP.NET Core 6和ASP.NET Core 7相关。
1条答案
按热度按时间mzmfm0qo1#
参考的发行说明中并不完全清楚这一点,但为了利用新的App Service Early Access feature(announcement),您需要 * 显式 * 配置您的App Service以使用.NET 5堆栈。
为.NET 5配置 * 现有 * 应用服务
要通过Azure门户为现有应用服务执行此操作,请完成以下步骤:
1.转到要升级的应用程序服务
1.单击左侧导航栏上的“Configuration”(配置)
1.单击页面级导航中的“常规设置”
1.在 * 堆栈设置 * 下,选择.NET
1.在 * 框架版本 * 下,选择.NET 5
为.NET 5配置 * 新 * 应用程序服务
在通过Azure门户配置新应用服务时,此应用服务早期访问的选择性加入要明确得多。在这种情况下,在创建应用服务时,系统将提示您选择 * 运行时堆栈 *,在该堆栈下,.NET 5被显式标记为 .NET 5(早期访问)。
Visual Studio发布警告
即使使用抢先体验功能,在从Visual Studio 2019 16.8发布时,您 * 可能 * 仍会收到以下警告(假设您启用了版本兼容性检查):
你的应用程序需要.NET Core 5.0.0运行时,但Microsoft Azure应用服务仅支持以下版本:第2.1.20节、第2.1.22节、第2.2.11节、第2.2.14节、第3.0.3节、第3.1.6节和第3.1.8节中所述。
尽管如此,一旦发布,即使您使用的是 Framework-dependent 部署模式,一切都应该正常工作。
应用洞察
提醒你一句:App Services Early Access功能的当前实现 * 还 * 不支持Application Insights集成。我早在2020年11月就创建了一个issue requesting status updates regarding Application Insights compatibility,但我不指望很快会有解决方案:a follow-up thread已关闭,但未解决。
如果您仍然依赖于Azure集成的Application Insights,我建议您使用migrate to the SDK implementation。
备选方案
作为替代方案,您可以选择在发布配置文件(
*.pubxml
)中使用 * 自包含 * 部署模式进行部署。这是.NET 5之前的Azure应用服务上的.NET Core新版本所需的方法,今天仍受支持。