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 dans Précontrainte 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 Mondiale.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é exigence). 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 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 suis incapable de le comprendre. 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.
- quelle est la version de IIS utilisez-vous?
- IIS 7.5 (7.5.7600.16385)
- Pas une réponse directe à votre question, mais pour les autres utilisateurs ayant le même problème et considère que vous disposez d'une connexion internet face à la demande: vous pouvez simplement utiliser un service externe comme uptimerobot.com pour toucher votre demande tous les X temps. Vous gardez votre application en cours d'exécution + vous avez l'avantage du service (disponibilité, alertes, etc).
- Même si l'application que je suis en train de travailler sur n'est pas connecté à internet, vous m'avez donné une bonne idée. Je pourrais utiliser un équilibreur de charge pour faire périodique toucher par la définition de l'état de santé de la vérification de type à Simple HTTP GET. Merci
Vous devez vous connecter pour publier un commentaire.
Le problème
Vous utilisez SimpleWorkerRequest dans un scénario qu'il n'a pas été conçu pour. Vous l'utilisez à l'intérieur de IIS. Si vous regardez l'état de la MSDN lien (l'emphase est mienne):
Aussi, si vous regardez la documentation MSDN pour la Système.Web.Hébergement de noms (
SimpleWorkerRequest
est dans cet espace de noms), vous verrez quelque chose de similaire à ci-dessus (encore une fois, c'est moi qui souligne):La solution
Je voudrais recommander le retrait de l'appel à
SimpleWorkerRequest
. Au lieu de cela, vous pouvez utiliser une solution de Microsoft pour s'assurer que votre site web démarre automatiquement après qu'il recycle. Ce que vous avez besoin est le Microsoft Initialisation de l'Application Module IIS 7.5. Il n'est pas compliqué à configurer, mais vous avez besoin de comprendre la nature exacte des options. C'est pourquoi je recommande aussi la Initialisation de l'Application de l'INTERFACE utilisateur pour IIS 7.5. L'INTERFACE utilisateur est écrit par une MSDN blogueur.Donc exactement ce que fait le Microsoft solution? Il fait ce que vous êtes en train de faire - IIS envoie une demande de "get" à votre site web après l'application de la piscine est commencé.
Essayer de le ré-enregistrer 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):
http://forums.iis.net/p/1190643/2026401.aspx
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...
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 résolu pour moi:
Add Roles and Features > Server Roles > Web Server (IIS) > Web Server > Application Development > .NET Extensibility 4.5
Exécutez l'une de ces commandes :
Pour la version 32 Bits de Windows OS:
Pour la version 64 Bits de Windows OS:
Pour de Windows 10 /Windows Server 2016 utilisez la commande suivante:
dism /online /enable-feature /featurename:IIS-ASPNET45 /all
Le corrigé avec
aspnet_regiis
ne fonctionne pas sur Windows 10 (Créateurs de mise à Jour et version ultérieure) ou Windows Server 2016:Fait intéressant, les "Fonctionnalités Windows Activer/Désactiver la boîte de dialogue" ne me permet pas de décocher la case .NET, ni ASP.NET 4.6, et seulement au-dessus de la commande DISM travaillé. Pas sûr que le featurename est correct, mais il a travaillé pour moi.
Ce https://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:
Dans mon cas (Windows 10 + IIS 10) j'ai dû ouvrir "Fonctionnalités Windows Activer ou Désactiver", puis cliquez sur Internet Information Services > Services World Wide Web > Fonctionnalités de Développement d'Applications >, et vérifier ASP.NET 4.6
Faire de ce son propre post car cela m'a fait ça pendant des heures.
J'ai vu peut-être une douzaine de semblable messages ici et ailleurs, à propos de ce problema et la aspnet_regiis correctif. Ils n'étaient pas de travail pour moi, et aspnet_regiis agissait bizarre, juste la liste des options etc.
En tant qu'utilisateur ryan anderson indiquée ci-dessus, vous ne pouvez pas entrer .exe
Pour ceux qui sont moins confortables avec des choses en dehors de IIS sur le serveur, voici ce que vous faites en quelques étapes simples.
Trouver aspnet_regiis dans un dossier similaire à ce chemin. c:\Windows\Microsoft.NET\Framework\v4.0.30319\
Cliquez-droit sur invite de commandes dans le menu démarrer ou de l'endroit où et dites lui d'exécuter en tant qu'administrateur. À l'aide de la fenêtre "Exécuter" fonction juste ne fonctionne pas, ou n'a pas, pour moi.
Revenir à la aspnet_regiis exécutable. Cliquez et faites-le glisser à droite dans l'invite de commande ou copiez-collez l'adresse dans l'invite de commande.
Supprimer, si il y est, le .exe à la fin. C'est la clé. Ajouter l'option-i (espace de moins d'oeil) à la fin. Entrée.
Si vous avez fait ceci correctement, vous verrez qu'il commence à installer asp.net et puis vous dit qu'il a réussi.
Je sais que c'est un oldie, mais pensé que je pourrais ajouter de la valeur. Pour ceux d'entre nous Serveur en cours d'exécution de Base en dehors d'un domaine (les membres suffit de lancer le Gestionnaire de Serveur à distance à ajouter/supprimer des fonctions/rôles), vous devez recourir à des lignes de commande.
Powershell les utilisateurs peuvent taper "Installer des add-WindowsFeature Web-Asp-Net45"
Qui doit être équivalent à l'aide du gestionnaire de serveur.
J'ai été défié par le même message d'erreur, avec .net de 4,7 installé.
La solution a été de suivre mentionné plus tôt post pour aller avec le "Windows Activer ou désactive la fonction de", où l' ".NET Framework 4.7 Services Avancés" --> "ASP.NET 4.7" était déjà cochée.
Plus bas dans la liste, il y a le "Internet Information Services" et subnote "Fonctionnalités de Développement d'Applications" --> "ASP.NET 4.7", qui doit aussi être vérifiée.
Lors de l'activation de cela, beaucoup d'autres fonctionnalités sont activées... j'ai simplement appuyé sur le bouton Ok, et le problème a été résolu.
Screendump de dialogue fonctionnalités de windows
Assurez-vous que vous avez configuré votre
application-site
version dev2.0
àv4.0
dans Gestionnaire des services IIS:Après cela, installez votre
ASP.NET
.Pour la version 32 Bits du système d'exploitation (Windows):
Pour les OS 64 Bits (Windows):
Redémarrez votre
application-site
dans le Gestionnaire des services internet et de profiter.J'ai eu ce problème et a trouvé que la suppression du dossier suivant aidé, même avec les non-Express edition.Express:
C:\Users\<user>\Documents\IISExpress
Cette erreur a commencé à me sortir de nulle part, la semaine dernière, affectant les sites web existants sur ma machine. Je n'avais aucune chance avec elle en essayant tout de la des suggestions ici. Finalement, j'ai supprimé WebDAV à partir de IIS complètement (des Fonctionnalités Windows -> Internet Information Services -> Services World Wide Web -> Fonctionnalités HTTP Communes -> Publication WebDAV). J'ai fait une réinitialisation des services internet après cela, pour faire bonne mesure, et mon erreur a été enfin résolu.
Je ne peux que deviner qu'une mise à jour Windows a commencé à la question, mais je ne peux pas en être sûr.
Je travaille sur Windows Server 2012. .NET Extensibilité 4.5 fonction est activée. WebDAVModule supprimé.
J'étais encore en train de 500.21 erreur sur ASP.NET l'itinéraire "/docs'.
Une "modification de la skipManagedModules' false résolu le problème.
Grâce à https://groups.google.com/forum/#!topic/bonobo-git-serveur/GbdMXdDO4tI
Vous pu le résoudre par le changement de la "ExtensionlessUrlHandler-Intégré-4.0 type" dans iis pour le Système.Web.DefaultHttpHandler
Pour moi, la suppression de WebDAV à partir de mon serveur a provoqué la demande de retour d'un
503 Service Unavailable
message d'Erreur lors de l'utilisation dePUT
ouDELETE
, donc j'ai ré-installé de nouveau. J'ai aussi essayé d'enlever complètement .NET Framework 4.5 et de le réinstaller et j'ai aussi essayé de ré-enregistrement, comme l'a suggéré, mais en vain.J'ai été en mesure de résoudre ce problème en désactivant WebDAV pour le personne application de la piscine, arrêter le "mauvais" module d'erreur lors de l'utilisation de
PUT
ouDELETE
.Désactiver WebDAV pour chaque Pool d'Application:
WebDAV Authoring Tools
dans la listeDisable WebDAV
en haut à droite.Ta daaaa!
J'ai toujours laissé le supprimer des éléments dans mon
web.config
fichier.Ce lien est là que j'ai trouvé les instructions, mais c'est pas très clair.
Ce peut-être pas une solution utile pour l'OP mais il s'agit de la même "erreur" message.
Nous sommes d'hébergement des pages PHP sur IIS8.5 avec .NET 4.5 est installé correctement.
Nous rendre l'utilisation de la précontrainte fonctionnalité pour faire en sorte que notre application est toujours sensible à travers le conseil d'administration.
Après un certain temps, nous avons commencé à obtenir cette erreur au hasard.
Dans le web.config : j'ai mis skipManagedModules à la vérité, -> ne faites pas cela!
Bien que le site est en php, le routage de l'appel est géré par les modules!!!
J'ai aussi couru à ce problème. Mon MVC4 Application est en cours d'exécution sur un Serveur Windows server 2012 R2 avec IIS 8.5. Aucun de ces posté des solutions a fonctionné pour moi...l'installation du manque de cadres par le biais de Fonctionnalités IIS pourraient avoir résolu, mais l'installation a échoué.
J'ai dû utiliser la
Web Platform Installer
et installé les paquets suivants:J'ai été confronté à ce problème dans une application web hébergée sur un serveur d'hébergement mutualisé. Alors, évidemment, n'ont pas d'accès direct à IIS, pourrait donc ne pas s'appliquer à de nombreuses solution proposée ici.
Sur le fournisseur d'hébergement panneau de contrôle, j'ai activé la journalisation des erreurs pour les services IIS et ASP.Net. Et puis arrivé à savoir que l'erreur en fait menti en cas de disparition d'cshtml.
J'ai résolu ce problème, en ajoutant dans "fonctionnalités Windows Activer ou désactiver"
L'option ASP.NET 4.7