Résolution des problèmes: le gestionnaire «PageHandlerFactory-Integrated» a un mauvais module «ManagedPipelineHandler» dans sa liste de modules

543

Je configure un projet MVC 3 pour fonctionner sur une installation locale d'IIS et j'ai rencontré l'erreur 500 suivante:

Le gestionnaire «PageHandlerFactory-Integrated» a un mauvais module «ManagedPipelineHandler» dans sa liste de modules.

Il s'avère que cela est dû au fait qu'ASP.Net n'a pas été complètement installé avec IIS même si j'ai coché cette case dans la boîte de dialogue "Ajouter une fonctionnalité". Pour résoudre ce problème, j'ai simplement exécuté la commande suivante à l'invite de commande

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

Si j'avais été sur un système 32 bits, cela aurait ressemblé à ceci:

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

Ma question est, existe-t-il un moyen d'installer IIS sur une boîte Windows 7 pour utiliser .NET 4.0 (MVC 3) sans prendre cette étape supplémentaire?

hspain
la source
2
La question a en fait résolu mon problème. J'aurais répondu à la question si j'avais pu. :)
Seregwethrin
Oui, la description de la question a également résolu mon problème. Merci :-)
sramsay

Réponses:

950

Il s'avère que cela est dû au fait qu'ASP.Net n'a pas été complètement installé avec IIS même si j'ai coché cette case dans la boîte de dialogue "Ajouter une fonctionnalité". Pour résoudre ce problème, j'ai simplement exécuté la commande suivante à l'invite de commande

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

Si j'avais été sur un système 32 bits, cela aurait ressemblé à ceci:

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

N'oubliez pas d'exécuter l'invite de commande en tant qu'administrateur ( CTRL+ SHIFT+ ENTER)

hspain
la source
Vous pourriez avoir "Aspnet_regiis.exe n'est pas reconnu comme une commande interne ou externe, un programme exploitable ou un fichier de commandes." Erreur. Dans ce cas, vous l'exécutable non pas depuis le dossier .NET 4.0, mais depuis celui 2.0 (voir ma réponse ci-dessous)
Nikita G.
Dans certains sites, j'ai lu que nous devions exécuter aspnet_regiis.exe mais aucun n'a expliqué que le paramètre est requis, sinon rien ne se passe.
Pimenta
grande réponse simple. Je savais que c'était une mauvaise installation, je ne savais pas comment la corriger.
elcool
Notez que si vous utilisez Windows Server 2012, vous devrez le faire via Gérer> Ajouter des rôles et des fonctionnalités> Fonctionnalités. Dans mon cas, IIS8 devait avoir installé / activé ASP.NET 4.5.
Stark
5
n'oubliez pas d'exécuter en tant qu'administrateur
Reid Evans
17

La réponse acceptée est correcte, mais vous obtiendrez parfois le message d'erreur " Aspnet_regiis.exe n'est pas reconnu en tant que commande interne ou externe, programme exécutable ou fichier de commandes. ".

Pour le résoudre, essayez ce qui suit:

  1. Assurez-vous que votre installation .NET 4.0 n'est pas corrompue (exécutez le programme d'installation et «Réparez-le»). Il est également possible qu'il ne soit pas du tout installé sur votre machine.

  2. Si vous êtes sûr de ne pas avoir installé .NET 4.0 et que vous souhaitez l'exécuter en tant que .NET 2.0, essayez ceci :

Si le message "Aspnet_regiis.exe n'est pas reconnu comme une commande interne ou externe, un programme exécutable ou un fichier de commandes" s'affiche, basculez vers C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Aspnet_regiis.exe -i à l'invite de commande.

Nikita G.
la source
Aspnet_regiis.exe -i a résolu mon problème sur Win Server 2008 IIS7.
VSB
9

Pour résoudre le problème, essayez repair the .net framework 4puis exécutez la commande

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
Shah
la source
9

Erreur: le gestionnaire «PageHandlerFactory-Integrated» a un mauvais module «ManagedPipelineHandler» dans sa liste de modules

J'ai trouvé les articles pour résoudre ce problème en exécutant simplement les commandes suivantes à l'invite de commandes:

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

Si le système est en 32 bits, cela aurait ressemblé à ceci:

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

Mais, lorsque j'ai essayé d'exécuter ces commandes à l'aide d'une invite de commande, j'ai reçu le message d'erreur / d'avertissement suivant:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS version 4.0.30319.33440 Utilitaire d'administration pour installer et désinstaller ASP.NET sur la machine locale. Copyright (C) Microsoft Corporation. Tous les droits sont réservés. Commencez à installer ASP.NET (4.0.30319.33440). Cette option n'est pas prise en charge sur cette version du système d'exploitation. Les administrateurs doivent à la place installer / désinstaller ASP.NET 4.5 avec IIS8 à l'aide de la boîte de dialogue "Activer / désactiver les fonctionnalités de Win dows", l'outil de gestion du Gestionnaire de serveur ou l'outil de ligne de commande dism.exe. Pour plus de détails, veuillez consulter http://go.microsoft.com/fwlin k /? LinkID = 216771. Installation terminée d'ASP.NET (4.0.30319.33440). **

Pour résoudre ce problème sur un Windows 8.1, je suggère de faire la chose suivante.

Solution:

Goto: activer ou désactiver les fonctionnalités de Windows -> Internet Information Services -> World Wide Web Services -> Application Development Features -> Enable ASP.NET 4.5

Cela devrait résoudre le problème.

Shubham Gupta
la source
J'ai eu le même problème. Merci! Pour moi, je devais activer "ASP.NET 4.6".
Jenny O'Reilly
4

Je voudrais également vérifier d'abord l'évidence: que le pool d'applications est défini sur le cadre approprié et que votre application IIS pointe réellement vers le dossier dans lequel vous placez vos fichiers.

BornToCode
la source
Si évident ... mais si facile à ignorer. Merci!
Paul Lemke
C'était le problème pour moi. Apparemment, d'une manière ou d'une autre, j'ai désactivé ce paramètre ou il a été défini sur «Aucun code géré». Le basculer en arrière vers v4.0 a eu mon site à charger.
redOctober13
3

Si vous souhaitez déployer une application MVC sans installer MVC, vous pouvez déployer les DLL MVC avec votre application . Cela permet d'éviter l'installation de MVC 3. Vous pouvez utiliser des fonctionnalités dans certains espaces de noms .Net 4.0 sans installer .Net en utilisant une approche similaire.

David Veksler
la source
4
L'enregistrement d'asp.net avec iis n'a rien à voir avec la présence ou non de MVC, oui, vous pouvez inclure les DLL requises dans votre dossier bin, mais si iis ne reconnaît pas les fichiers asp, les DLL ne peuvent pas faire grand chose
Shekhar
3

J'ai ajouté les chemins ISAPI / CGI pour .Net 4. Ce qui n'a pas résolu le problème. J'ai donc exécuté une réparation sur l'installation .Net V4 (client et étendu). Qui a demandé un redémarrage. Cela m'a arrangé.

Kent
la source
2

Pour résoudre ce problème sur un ordinateur Windows 8.1 Professionnel , procédez comme suit.

  1. Installez le programme d'installation de la plateforme Web. http://www.microsoft.com/web/downloads/platform.aspx

  2. Dans Web Platform Installer, installez ASP.NET 4.5 (cette fonctionnalité a une dépendance).

Si vous essayez simplement la commande d'invite cmd susmentionnée à partir de la réponse la plus courante, vous obtiendrez le message d'erreur / d'avertissement suivant:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS version 4.0.30319.33440 Utilitaire d'administration pour installer et désinstaller ASP.NET sur la machine locale. Copyright (C) Microsoft Corporation. Tous les droits sont réservés. Commencez à installer ASP.NET (4.0.30319.33440). Cette option n'est pas prise en charge sur cette version du système d'exploitation . Les administrateurs doivent plutôt installer / désinstaller ASP.NET 4.5 avec IIS8 à l'aide de la boîte de dialogue "Activer / désactiver les fonctionnalités de Win dows", de l'outil de gestion du gestionnaire de serveur ou de l'outil de ligne de commande dism.e xe. Pour plus de détails, veuillez consulter http://go.microsoft.com/fwlin k /? LinkID = 216771. Installation terminée d'ASP.NET (4.0.30319.33440).

Chat Botté
la source
2

J'ai essayé de faire aspnet_regiis dans l'invite de commande mais j'ai obtenu la réponse que je n'ai pas de droits d'administrateur. Ensuite, après avoir googlé et recherché une solution, j'ai essayé de faire un clic droit sur cmd et de l'exécuter en tant qu'administrateur. Confirmé oui lorsque la boîte de dialogue est apparue, a de nouveau exécuté aspnet_iis et a fonctionné comme un charme. En bref: 1. vérifiez le framework .NET dans app_pool 2. exécutez cmd en tant qu'administrateur 3. exécutez aspnet_regiis -i

saule
la source
2

J'ai eu le même problème et ma solution était:

Accédez à «Activer ou désactiver les fonctionnalités Windows»> Services Internet (IIS)> Services World Wide Web> Fonctionnalités de développement d'applications> Activer ASP.NET 4.5

Ryan Burbidge
la source
Cela fonctionne comme un charme, mais y a-t-il une raison pour laquelle je ne voudrais pas le faire sur un serveur de production, étant donné qu'il s'agit d'une «fonctionnalité de développement d'applications»?
Philip Stratford
Je ne connais pas assez cette fonctionnalité pour commenter son utilisation dans un environnement de production. Cependant, j'ai trouvé ce lien qui pourrait être utile technet.microsoft.com/en-us/library/hh831475.aspx . Il contient également une commande que vous pouvez utiliser pour installer les modules IIS et ASP.NET via l'invite de commande, qui pourrait être plus adaptée à vos besoins de production.
Ryan Burbidge
1

J'ai eu un problème similaire avec Windows Server 2012, l'installation de la fonction " Application Server " dans le gestionnaire de serveur a résolu le problème.

user1255162
la source
1

-Utilisation de la fonction d'initalisation de l'application - demande de mauvaises pages (.asp) en raison de l'héritage de la configuration

500.21 se produira uniquement sur la première connexion utilisateur. Les connexions suivantes fonctionnent.

Résolu en corrigeant la collection d'URL applicationInitialization sur le site Web .NET.

svl
la source
1
  1. courir cmd

  2. glissez-déposez Aspnet_regiis.exedans l'invite de commande à partir de:

    C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
  3. type -i(par exemple Aspnet_regiis.exe -i)

  4. appuyez sur Entrée

  5. attendez la fin du processus

Bonne chance!

user11716116
la source
0

J'ai eu ce problème et j'ai constaté que la suppression du dossier suivant a aidé, même avec l'édition non Express.

C:\Users\<user>\Documents\IISExpress

Thomas Bratt
la source
0

Rien de tout cela n'a fonctionné pour moi. Donc, alors que je comparais différents pools d'applications avec un qui fonctionnait et un qui ne fonctionnait pas, je devais aller dans les paramètres avancés du pool d'applications et définir

Activer les applications 32 bits = vrai

Ensuite, cela a bien fonctionné!

LarryBud
la source
0

J'ai eu le même problème, dans mon cas, le gestionnaire était à deux endroits:

<system.web>
...
<httpHandlers>
 <add verb="*" path="*.ashx" type="ApplicArt.Extranet2.Controller.FrontController, ApplicArt.Extranet2.Web.UI" />
  </httpHandlers>
</system.web>

<system.webServer>
<handlers>
   ...
  <add name="FrontController" verb="*" path="*.ashx" type="ApplicArt.Extranet2.Controller.FrontController, ApplicArt.Extranet2.Web.UI"/>
</handlers>
</system.webServer>

Et quand j'ai supprimé mon gestionnaire de [system.webServer] mon problème a disparu.

Wieslaw Olborski
la source
0

dans certains scénarios, cette erreur se produit car la configuration Microsoft .NET Framework 4.0 pour ASP .NET a été endommagée, ce qui peut se produire si Microsoft Visual Studio 2012 a été installé avant Visual Studio 2010 ou Microsoft SQL Server 2008.

Après avoir essayé différentes choses, je suis arrivé à la conclusion, réparez votre installation .Net en exécutant la commande suivante. Pour plus d'informations, suivez le lien.

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SetupCache\v4.5.51209\setup.exe /repair /x86 /x64 /ia64 /norestart

https://msdn.microsoft.com/en-us/library/hh168535(v=nav.80).aspx

sairfan
la source
0

Pour résoudre le problème, essayez de réparer le framework .net 4, puis exécutez la commande

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

entrez la description de l'image ici

Nabeel
la source
1
Avez-vous lu toutes les réponses publiées avant de publier la vôtre?
M. Adeel Khalid
0

J'avais ce problème sur l'un de mes serveurs Web lorsque je tentais de basculer un pool d'applications de classique à intégré. Cela a bien fonctionné sur deux de mes autres serveurs Web, pas seulement celui-ci. C'est Server 2012, donc vous ne pouvez pas faire le aspnet_regiis et il n'y avait pas de dossier setupcache pour essayer cette réparation. Tout a été correctement réglé sous les fonctionnalités.

Après avoir parcouru% windir% \ system32 \ inetsrv \ config \ applicationHost.config, j'ai trouvé un bit manquant critique. Sous mon inactif, il manquait les deux lignes suivantes:

        <add name="ManagedEngineV4.0_32bit" image="C:\Windows\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
        <add name="ManagedEngineV4.0_64bit" image="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />

Une fois que je les ai ajoutés, tout a très bien fonctionné.

Jason Baginski
la source