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é?

11
demandé sur Community 2013-06-18 00:37:34

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.

22
répondu jblaske 2013-07-10 19:39:29

@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.

  1. ouvrez IIS et allez au site en question.
  2. cliquez sur"handler Mappings"
  3. trouver le gestionnaire nommé "WebDAV"
  4. Sélectionner et le Supprimer

C'est mon message d'origine.

2
répondu christo8989 2017-05-23 11:53:18

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" />
0
répondu Ciprian Teiosanu 2013-06-21 14:32:03

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.

enter image description here

0
répondu Rajiv 2018-08-14 10:44:42