J'ai rencontré cette erreur après avoir essayé de publier depuis VS2017 vers le serveur Windows 2016 de production. (Cela a bien fonctionné dans IIS Express sur mon PC local Win10).
J'ai mis à jour les paquets, toutes les versions correspondent et sont mises à jour dans mon code, les versions de .net core correspondent, je redémarre IIS, je redémarre... aucune joie.
Dans le menu Publier > Configurer > Paramètres (onglet de gauche), j'ai dû modifier le paramètre Target-runtime de "Portable" à "win-x64" (ou tout autre paramètre pertinent pour votre environnement). J'ai également opté pour "Supprimer les fichiers supplémentaires à la destination".
"Portable" est le paramètre par défaut. Je ne suis pas sûr de ce qu'il faut faire pour que le runtime "Portable" fonctionne correctement, mais cela pourrait faire gagner du temps à quelqu'un d'autre si un runtime "Portable" n'est pas quelque chose dont vous avez besoin.
En général, j'obtiens cette erreur si quelque chose n'est pas adapté dans mon environnement. Par exemple, une fois, j'ai mis à niveau un de mes projets vers .Net Core 3.1 à partir de 2.2 et je n'avais pas installé le pack d'hébergement ASP.NET Core Runtime sur mon serveur :
https://dotnet.microsoft.com/download/dotnet-core/3.1
Vous pouvez également obtenir cette erreur si votre pool d'applications est défini sur True pour Enable 32-Bit Applications. Essayez :
IIS Manager > Pools d'applications > nom du pool d'applications > (clic droit) Avancé Paramètres > Activer les applications 32 bits = False
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.