WebDAV est installé et fonctionne sur mon site. En tant que sous-site virtuel, j’ai un site Web MVI MVC, l’API fonctionne très bien, jusqu’à ce que j’essaie d’envoyer une requête PUT, puis l’erreur ci-dessous:
Erreur HTTP 500.21 - Erreur interne du serveur
Le gestionnaire "ExtensionlessUrlHandler-Integrated-4.0" a un mauvais module "ManagedPipelineHandler" dans sa liste de modules
Si je désactive WebDAV, tout fonctionne correctement et je n’obtiens aucune erreur. Cela se produit uniquement 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.NET\Framework\v4.0.30319\aspnet_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.NET\Framework64\v4.0.30319\aspnet_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 différents pools d'applications.
J'ai également fatigué toutes les choses mentionnées dans toutes ces questions:
Rien de tout cela n'a résolu mon problème, y a-t-il autre chose que je n'ai pas essayé?
Nous avons fini par aller chez Microsoft avec cela, ils l'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 essaieront de résoudre ce problème dans une prochaine version d'IIS.
@jblaske a une bonne réponse.
Si vous souhaitez le supprimer temporairement, alors peut-être que cet article est la meilleure solution.
Si vous souhaitez supprimer le gestionnaire tous ensemble, procédez comme suit.
Ceci est mon post original .
Vous pourriez avoir un problème de frappe dans la déclaration des gestionnaires. Le blog de Thomas Marquardt dit
5.0 Dépannage
Si vous recevez une erreur similaire à celle ci-dessous, votre section Est probablement non valide.
Erreur HTTP 500.21 - Le gestionnaire d'erreurs de serveur interne "" a Un module incorrect "ManagedPipelineHandler" dans sa liste de modules Vous avez probablement Un mappage de gestionnaire qui n'a pas la condition préalable correcte. IIS ne pardonne pas les fautes de frappe et les conditions préalables sont Sensibles à la casse. Le texte doit être preCondition = "integratedMode" ou PreCondition = "classicMode".
En outre, une autre suggestion tirée des commentaires sur cet article:
Andrew Johnson 25 janvier 2011 03h20 #:
J'ai trouvé que je pouvais aussi obtenir le "Gestionnaire a un mauvais Module ManagedPipelineHandler dans sa liste de modules" si le gestionnaire a RequireAccess = "None". Pour moi, changer ceci en requireAccess = "Read" A fait disparaître l'erreur.
Ce commentaire peut s’appliquer à votre cas car je constate 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" />