Une autre réponse qui pourrait aider d'autres personnes dans le même cas : nous avons un AppService sur Azure où il y a 3 projets NETCore déployés sur 3 chemins différents :
- Un pour le Web (/webapi)
- One for Mobile (/mobileapi)
- Un pour les fonctions sans serveur, dans notre cas c'était AzureFunctions (/functionapi)
Depuis la mise à niveau vers NETCore3.x Nous avons compris que le modèle d'hébergement par défaut était "In-Process". Nous avons donc dû modifier le fichier .csproj pour définir explicitement le modèle d'hébergement sur "Out-Of-Process" comme ceci :
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
Mais ce n'était pas suffisant : en fait, nous devons aussi modifier Program.cs. Pourquoi ? Parce que dans Program.cs, celui généré par défaut dans NETCore3.x, vous avez le code suivant :
public static IHostBuilder CreateHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
webBuilder.ConfigureKestrel(o => o.AddServerHeader = false);
});
}
Lorsque nous avons remplacé ce code par l'ancien par la version NETCore2.x comme ci-dessous :
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseKestrel(options => options.AddServerHeader = false)
.UseStartup<Startup>();
}
Après le déploiement, l'erreur 502.5 ANCM Startup Failure a disparu :) J'espère que cette réponse pourra aider d'autres personnes.
BTW Je sais que ce post est lié à NETCore2.2, nous avons également rencontré le même problème mais nous avons décidé de passer à NETCore3.1 car NETCore2.2 n'était plus supporté et cette version était également boguée sur certains autres points.
0 votes
Vous devez également mettre à jour le bundle serveur .NET Core à la même version. Vous ne pouvez pas vous contenter de mettre à jour votre projet, car cela entraînerait un décalage de version dans l'ANCM.
1 votes
@LexLi Le problème a corrompu le local, pas le serveur. J'ai installé dotnet-sdk-2.2.104 et aspnetcore-runtime-2.2.2.
6 votes
Nope. Vous avez besoin du dernier "Runtime & Hosting Bundle" d'ici dotnet.microsoft.com/download/dotnet-core/2.2
0 votes
@LexLi merci, pour votre réponse.