93 votes

IIS : Le gestionnaire "aspNetCore" a un mauvais module "AspNetCoreModuleV2" dans sa liste de modules.

J'ai utilisé le modèle angular .net core 2.2 pour construire une application. Dans l'hôte local, tout fonctionne bien, mais lorsque j'héberge IIS, j'obtiens cette erreur. J'utilise IIS 10 pour héberger l'application.

Erreur,

Erreur HTTP 500.21 - Erreur interne du serveur Le gestionnaire "aspNetCore" a un mauvais module "AspNetCoreModuleV2" dans sa liste de modules.

2 votes

Veuillez vous référer à cette URL : stackoverflow.com/questions/53730020/

0 votes

89voto

Shadi Namrouti Points 1453

Windows IIS

Solution : Installer l'offre groupée d'hébergement .

Raison : Bien que le SDK contienne normalement le runtime, il semble que le programme d'installation du SDK n'enregistre pas correctement le runtime sur le serveur.

Solution de contournement ( non recommandé ) :

Changer AspNetCoreModuleV2 a AspNetCoreModule dans le fichier web.config.

Hébergement de la plateforme Azure

Installez l'extension d'exécution .NET Core en sélectionnant Extensions puis en installant .NET Core Runtime .

39voto

Installer le paquet d'exécution .Net Core 2.2 sur la machine hôte.

Ou

Publiez votre projet en tant que projet autonome.

12 votes

L'installation du SDK ne suffit pas. Vous devez sélectionner la version "hosting bundle" du runtime. Même sans réinitialiser IIS, cela a fonctionné pour moi.

3 votes

J'ai installé le pack d'hébergement 2.2 et j'ai toujours ce problème.

0 votes

@BinaryPatrick Avez-vous résolu votre problème ? J'ai la même erreur même après avoir installé le pack d'hébergement.

27voto

Zack Evans Points 259

En supprimant V2 de modules="AspNetCoreModuleV2", cela a fonctionné pour moi. Notez que mon problème était lié à l'exécution d'une api web .net core à partir de visual studio. IE Express a échoué avec un code 500 et en enquêtant sur le journal d'erreur décrivant "Handler 'aspNetCore' has a bad module " a été résolu en le remplaçant par ce qui suit.

<handlers>
  <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>

3 votes

Si cela fonctionne, quelles sont les conséquences d'une rétrogradation de la V2 ?

0 votes

@BinaryPatrick Êtes-vous sûr que supprimer la v2 revient à la déclasser et non pas à lui dire d'utiliser la dernière version, ou toute version qu'elle peut trouver, plutôt que de la forcer à chercher la v2 ?

0 votes

Je n'en suis pas certain. J'aimerais bien connaître la réponse à cette question.

11voto

BinaryPatrick Points 363

MISE À JOUR

Il s'agit d'une solution de contournement qui permet de conserver votre application sur un hébergement antérieur à la version 2. Veuillez consulter la réponse d'Alan et mon commentaire pour une solution plus complète.

ORIGINAL

J'ai réussi à faire fonctionner ce système en ajoutant le bloc de code suivant au fichier .csproj pour l'application web.

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
  <LangVersion>latest</LangVersion>
  <AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
  <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>

Il est évident que vous voudrez mettre à jour le netcoreapp au fur et à mesure que vous avancez. C'est ainsi que j'ai pu faire fonctionner les choses. Je ne sais pas pourquoi le simple fait d'installer le pack d'hébergement pour la version 2.2 n'a pas suffi.

7voto

alans Points 922

Il y a plusieurs façons de résoudre ce problème :

  1. Installer la dernière version de .NET Core Runtime
  2. Inspecter les applicationhost.config utilisé par votre IIS. Vous devez avoir les entrées suivantes dans les emplacements appropriés :

    <configuration> <system.webServer> ... <globalModules> ... <add name="AspNetCoreModuleV2" image="%IIS_BIN%\Asp.Net Core Module\V2\aspnetcorev2.dll" /> </globalModules> </system.webServer> ... <location path="" overrideMode="Allow"> <system.webServer> <modules> ... <add name="AspNetCoreModuleV2" lockItem="true" /> </modules> </system.webServer> </location> </configuration>

Assurez-vous simplement que vous avez bien le fichier pour aspnetcorev2.dll dans le répertoire bin de votre IIS.

1 votes

Cela a fonctionné pour moi, mais j'ai une grappe de machines avec IIS derrière un équilibreur de charge, et lorsque j'ai restauré la configuration partagée, elle a écrasé mes changements. Soit vous vous assurez que vous vérifiez ceci dans votre configuration partagée, soit vous vous assurez que vous vérifiez ceci dans votre configuration partagée. applicationhost.config ou exporter à nouveau votre configuration après l'installation du runtime.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X