WebDAV et WebAPI ensemble causent des erreurs: le Gestionnaire "ExtensionlessUrlHandler-Integrated-4.0" a un mauvais module "ManagedPipelineHandler" dans sa liste de modules
J'ai les deux WebDAV installé et en cours d'exécution sur mon site, en tant que sous-site virtuel j'ai un site web MVCAPI, L'API fonctionne très bien, jusqu'à ce que j'essaie d'envoyer une requête PUT à elle, puis je reçois l'erreur suivante:
erreur HTTP 500.21-erreur de serveur interne
Handler "ExtensionlessUrlHandler-Integrated-4.0" a un mauvais module "ManagedPipelineHandler" dans sa liste de modules
si je désactive WebDAV, alors tout fonctionne bien et je n'obtiens pas erreur. Cela ne se produit que lorsque WebDAV est activé.
j'ai tout le code suivant dans mon web.config:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="false">
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%Microsoft.NETFrameworkv4.0.30319aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%Microsoft.NETFramework64v4.0.30319aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
j'ai essayé de jouer avec divers groupes d'applications.
j'ai également fatigué toutes les choses mentionnées dans toutes ces questions:
comment se débarrasser de ce gestionnaire d'erreurs "PageHandlerFactory-Integrated" a un mauvais module "ManagedPipelineHandler" dans sa liste de modules
Gestionnaire "ExtensionlessUrlHandler-Integrated-4.0" a un mauvais module "ManagedPipelineHandler" dans sa liste de modules
comment corriger: Handler "PageHandlerFactory-Integrated" a un mauvais module "ManagedPipelineHandler" dans sa liste de modules
rien de tout cela a résolu mon problème, est-il autre chose que je n'ai pas essayé?
4 réponses
Nous avons fini par aller à Microsoft avec cela, ils ont examiné pendant plusieurs semaines avant de revenir en disant que Il n'est pas possible d'exécuter WebDAV et WebAPI sur le même site.
ils tenteront d'aborder cette question dans une prochaine version de IIS.
@jblaske a une bonne réponse.
Si vous voulez le retirer temporairement alors peut-être cet article est la meilleure solution.
si vous voulez supprimer le gestionnaire tous ensemble, suivez ces étapes.
- ouvrez IIS et allez au site en question.
- cliquez sur"handler Mappings"
- trouver le gestionnaire nommé "WebDAV"
- Sélectionner et le Supprimer
C'est mon message d'origine.
vous pourriez avoir un problème d'erreur typographique dans la déclaration des manipulateurs. le Blog de Thomas Marquardt dit
5.0 Dépannage
si vous recevez une erreur similaire à celle ci-dessous, votre l'article est probablement pas valide.
erreur HTTP 500.21-Gestionnaire D'erreurs du serveur interne "" has un mauvais module "ManagedPipelineHandler" dans sa liste de modules vous probablement avoir un handler mapping qui n'a pas la condition préalable correcte. IIS n'est pas indulgente en ce qui concerne les fautes de frappe, et les conditions préalables sont sensible à la casse. Le texte doit être condition préalable= "integratedMode" ou condition préalable= "classicMode".
en outre, selon une autre suggestion, d'après les commentaires sur cet article:
Andrew Johnson 25 Jan 2011 3: 20 AM #:
j'ai trouvé que je peux aussi obtenir le " Handler a un mauvais module ManagedPipelineHandler dans sa liste de modules" si le gestionnaire a requireAccess= "None". Pour moi, l'évolution ceci pour requeraccess= " Read" fait disparaître l'erreur.
ce commentaire pourrait s'appliquer à votre cas je vois que dans applicationHost.config l'entrée pour les gestionnaires WebDav est (notez le requredAccess="None"
):
<add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" />
j'ai commencé à recevoir cette erreur après que j'ai enlevé le module WebDAV et le handler manuellement de L'IIS pour obtenir mis travailler. J'ai dû supprimer le rôle de serveur "publication WebDAV" pour surmonter cette erreur. Après avoir retiré ce rôle et redémarré L'IIS, PUT fonctionne très bien.