Configuration WebDAV d’IIS
Lorsque vous hébergez le Babel Licensing Service sur Internet Information Services (IIS), les appels d’API peuvent échouer si WebDAV est activé sur votre serveur. Ce document explique l’origine de ces conflits et décrit les étapes de configuration qui permettent de les résoudre.
Comprendre le conflit avec WebDAV
WebDAV (Web Distributed Authoring and Versioning) est une extension de HTTP qui permet la modification collaborative et la gestion de fichiers sur les serveurs web. Lorsqu’il est activé dans IIS, WebDAV intercepte certaines méthodes HTTP, notamment :
- PUT
- DELETE
- PROPFIND
- PROPPATCH
- MKCOL
- COPY
- MOVE
- LOCK
- UNLOCK
Le Babel Licensing Service utilise une API RESTful qui repose sur différentes méthodes HTTP, en particulier PUT et DELETE. Lorsque WebDAV est activé, il traite ces requêtes avant qu’elles n’atteignent l’application Babel Licensing Service, ce qui fait échouer les appels d’API.
Symptômes d’une interférence de WebDAV
Vous rencontrez peut-être des conflits avec WebDAV si :
- les appels d’API échouent avec des erreurs 405 (Method Not Allowed)
- les opérations PUT et DELETE envoyées à l’API renvoient des réponses inattendues
- vous ne parvenez pas à enregistrer ni à mettre à jour des données par l’intermédiaire du Babel Licensing Service
- les autres opérations de l’API fonctionnent correctement, mais certaines opérations de mise à jour et de suppression échouent
Résoudre les conflits avec WebDAV
Pour que le Babel Licensing Service fonctionne correctement dans IIS, vous devez désactiver WebDAV pour l’application. Ajoutez la configuration suivante à votre fichier web.config, ou modifiez celui-ci en conséquence :
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\Babel.Licensing.Service.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>Éléments clés de la configuration
-
Retrait du module WebDAVÂ :
<modules> <remove name="WebDAVModule" /> </modules>WebDAV ne peut ainsi plus intercepter les requĂŞtes HTTP au niveau du module.
-
Retrait du gestionnaire WebDAVÂ :
<handlers> <remove name="WebDAV" /> <!-- other handlers here --> </handlers>Le gestionnaire ASP.NET Core reçoit ainsi toutes les requêtes HTTP, quel que soit le verbe HTTP utilisé.
Emplacement du fichier web.config
Veillez à placer ce fichier web.config dans le répertoire racine de votre application Babel Licensing Service.
Configuration propre au site ou configuration globale
La configuration ci-dessus désactive WebDAV uniquement pour l’application Babel Licensing Service. Si vous avez besoin de WebDAV pour d’autres applications du même serveur, cette approche vous permet de ne le désactiver que là où c’est nécessaire.
Si vous préférez désactiver WebDAV globalement sur votre serveur IIS, vous pouvez le faire dans IIS Manager :
Ouvrir IIS Manager
Ouvrez IIS Manager.
Sélectionner votre serveur
Sélectionnez votre serveur dans le panneau Connections.
Ouvrir WebDAV Authoring Rules
Double-cliquez sur « WebDAV Authoring Rules » (Règles de création WebDAV).
Désactiver WebDAV
Dans le panneau Actions, cliquez sur « Disable WebDAV » (Désactiver WebDAV).
Vérifier la configuration
Après avoir appliqué les modifications de configuration :
Redémarrer le pool d’applications
Redémarrez le pool d’applications du Babel Licensing Service.
Tester les appels d’API
Testez les appels d’API qui échouaient auparavant.
Vérifier les opérations sur les données
Vérifiez que l’enregistrement et la mise à jour des données fonctionnent correctement.
Dépannage
Si les problèmes persistent après ces modifications :
- Vérifiez que le pool d’applications a redémarré
- Recherchez d’éventuels messages d’erreur dans les journaux IIS
- Vérifiez que la syntaxe du fichier web.config est correcte
- Confirmez que le module WebDAV est bien installé sur votre serveur (la directive de retrait reste sans danger même s’il ne l’est pas)
- Recherchez dans les journaux de l’application d’éventuelles erreurs liées à l’API
Pour obtenir de l’aide, contactez l’assistance du Babel Licensing Service en indiquant la version de votre serveur IIS et les détails de sa configuration.