269 votes

Handler "ExtensionlessUrlHandler-Intégré-4.0" a un mauvais module "ManagedPipelineHandler" dans sa liste de module

Pour être honnête, j'ai essayé de mettre un sale coup sur IIS et juste quand je pensais que j'allais sortir avec elle, j'ai réalisé que ma solution de contournement ne fonctionne pas. Voici ce que j'ai essayé de faire:

1) j'ai ASP.NET l'application qui a Preloader classe qui hérite IProcessHostPreloadClient et fait toutes les lourds initialisation de la Précontrainte de la méthode de la mise en œuvre (application est complexe et c'est une partie d'un vaste système, donc il faut environ 2 minutes pour établir des connexions avec tous les services nécessaires et de pré-instancier une certaine Unité des inscriptions).

2) j'ai beaucoup de travail qui doit être fait sur l'arrêt de l'application (désabonnement, la déconnexion, l'élimination,...), et je crois que le meilleur endroit pour le faire est dans *Application_End* méthode situé dans le Mondial.asax.

3) Tout fonctionne très bien quand j'ai une activité de l'utilisateur (première demande après l'Application de la Piscine qui contient web susmentionné application est démarrée entraînera *Application_Start* pour être appelés, et par la suite *Application_End* est appelée sur le Pool d'Applications de l'arrêter ou de recycler), mais des problèmes se produisent lorsqu'il n'y a aucune activité de l'utilisateur et de l'application tente de se relancer après avoir été active pendant 48 heures (configuré). Puisqu'il n'y a pas de demande, demande officiellement de ne pas commencer. Ergo, il ne peut pas être gracieusement arrêté depuis *Application_End* ne sera pas appelé.

4) Maintenant vient le désordre de la partie... j'ai essayé de faire une demande de code à la fin de la Précontrainte de la méthode, et cela a fonctionné. Mais cette solution semble mauvais pour moi, même si elle a fonctionné. Donc, j'ai essayé beaucoup de choses, et la dernière chose que j'ai essayé était ceci:

SimpleWorkerRequest swr = new SimpleWorkerRequest(string.Empty, string.Empty, tw);
HttpRuntime.ProcessRequest(swr);

... et qui a fait de l'effet. *Application_Start* a été appelé, (je l'ai vérifié en réponse, on a contenant de la page de connexion qui était censé être affiché dans la demande initiale) et sur le Pool d'Applications de l'arrêt de l'application s'est terminée normalement faire le travail nécessaire en *Application_End*.

MAIS

Après l'application a été commencé (préchargés et initié) de cette manière, c'est ce qui est arrivé quand j'ai voulu atteindre application via un navigateur Web:

Erreur HTTP 500.21 - Erreur Interne du Serveur Handler "ExtensionlessUrlHandler-Intégré-4.0" a un mauvais module "ManagedPipelineHandler" dans sa liste de module

Je ne suis pas en mesure de comprendre cela. Quelqu'un peut-il me dire pourquoi cela arrive et comment le résoudre?

Si je n'ai pas trouver cela, je vais revenir à la première solution (envoi d'OBTENIR la demande de code), mais ce problème de bug moi, puisque je n'ai même pas une idée de ce qui est faux.

654voto

danijelk Points 2476

Essayez de vous réinscrire ASP.NET avec aspnet_regiis -i. Il a travaillé pour moi.

Un chemin d'accès probable pour .NET 4 (à partir de invite de commande élevée):

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

http://forums.iis.net/p/1190643/2026401.aspx

184voto

Zach Points 541

Si vous rencontrez cette erreur avec Windows 8/Windows Server 2012 et .Net 4.5 suivez ces instructions ici: http://www.britishdeveloper.co.uk/2013/01/handler-extensionlessurlhandler.html

Aller à "fonctionnalités Windows activer ou désactiver" Puis Internet Information Services Puis Dans Le Monde Entier Web Services Ensuite Fonctionnalités De Développement D'Applications Et puis l'activer ASP.NET 4.5

Cela a fonctionné pour moi (bien que l'assistant et la formulation est un peu différent dans Windows Server 2012, mais vous allez comprendre). Cela étant dit, pourquoi cela est nécessaire après l'installation de tout à travers le Web Platform Installer, y compris toutes les dépendances me dépasse complètement...

68voto

Jonathan Points 1367

En dépit de beaucoup de conseils sur cette page, j'étais encore en train de problèmes sur Windows Server 2012. L'installation d' .NET Extensibilité 4.5 (Ajouter des Rôles et Fonctionnalités > Rôles de Serveur > Serveur Web (IIS) > Serveur Web > Développement d'Applications > .NET Extensibilité 4.5) résolu pour moi.

42voto

user3896335 Points 21

Exécutez ces commandes:

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -I

26voto

Neshta Points 223

Cette http://stackoverflow.com/a/13266763/1277458 fonctionne parfaitement. Mais si vous avez 64 bits système d'exploitation utilisation Framework64 au lieu de Cadre en chemin:

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

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