Sam*_*Sam 9 asp.net azure azure-web-app-service asp.net-core .net-8.0
我有一个 ASP.NET Core Web API,一直在 Azure 应用服务 Windows 平台上运行。这个应用程序的目标是 .NET 7,今天我将其更新为目标 .NET 8。它在本地编译和运行良好。
根据此公告,.NET 8 现已在 Azure 应用服务上提供:https ://azure.github.io/AppService/2023/11/14/dotnet8-ga.html
我将应用程序部署到 Azure 应用服务,然后将 .NET 版本更改为 .NET 8 - 如下所示:
这不起作用,我不断收到以下错误:
ANCM 无法找到本机依赖项
然后我在 Reddit 上找到了这篇文章: https: //www.reddit.com/r/dotnet/comments/17v7qb5/http_error_50031_ancm_failed_to_find_native/
因此,我继续安装ASP.NET Core .NET 8 x64
并x86
通过高级工具下的 Kudu - 如下所示:
然后,我多次在 Azure 应用服务上停止并重新启动该应用程序,但它仍然无法正常工作。当我尝试访问 API 上的端点时,它旋转了很长时间,并返回“服务不可用”错误,但根据 Azure 上的应用程序仪表板,它已启动并正在运行。
有什么建议么?还有其他人遇到升级到 .NET 8 的问题吗?
PS:我的 API 应用程序的部署是通过 GitHub 操作完成的,我确实将 .NET 版本更新到 .NET 8 - 见下文:
我创建了一个版本为.NET-8.0的基本ASP .NET Core Web API,并使用 GitHub 操作部署到 Azure 应用服务。
步骤如下:
创建了一个 .NET 8 版本的 ASP .NET Core Web API 项目,并且能够在本地运行。
修改后的program.cs:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
app.UseDeveloperExceptionPage();
app.UseSwagger();
app.UseSwaggerUI(x =>
{
x.SwaggerEndpoint("/swagger/v1/swagger.json", "Web API V1");
#if DEBUG
x.RoutePrefix = "swagger"; // For localhost
#else
x.RoutePrefix = string.Empty; // For azure
#endif
}
);
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
Run Code Online (Sandbox Code Playgroud)
我的工作流程:
以下是我用来部署应用程序的工作流程。
name: Build and deploy ASP.Net Core app to Azure Web App - <web_app_name>
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Set up .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: '8.x'
include-prerelease: true
- name: Build with dotnet
run: dotnet build --configuration Release
- name: dotnet publish
run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/myapp
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v3
with:
name: .net-app
path: ${{env.DOTNET_ROOT}}/myapp
deploy:
runs-on: windows-latest
needs: build
environment:
name: 'Production'
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v3
with:
name: .net-app
- name: Deploy to Azure Web App
id: deploy-to-webapp
uses: azure/webapps-deploy@v2
with:
app-name: '<web_app_name>'
slot-name: 'Production'
package: .
publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_FXXXXXXXXXX }}
Run Code Online (Sandbox Code Playgroud)
部署状态:
成功运行应用程序。
如果部署应用程序时问题仍然存在,请--self-contained
在 GitHub 工作流程中添加 dotnet 的发布命令。
- name: dotnet publish
run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/myapp --self-contained true
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2956 次 |
最近记录: |