IIS-WebDAV-Konfiguration
Wenn Sie den Babel Licensing Service auf den Internet Information Services (IIS) hosten, können Probleme mit API-Callbacks auftreten, falls auf Ihrem Server WebDAV eingeschaltet ist. Dieses Dokument erklärt, warum diese Konflikte entstehen, und beschreibt die Konfigurationsschritte, mit denen Sie sie beheben.
Den WebDAV-Konflikt verstehen
WebDAV (Web Distributed Authoring and Versioning) ist eine Erweiterung von HTTP, die die gemeinsame Bearbeitung und die Dateiverwaltung auf Webservern ermöglicht. Ist WebDAV in IIS eingeschaltet, fängt es bestimmte HTTP-Methoden ab, darunter:
- PUT
- DELETE
- PROPFIND
- PROPPATCH
- MKCOL
- COPY
- MOVE
- LOCK
- UNLOCK
Der Babel Licensing Service verwendet eine RESTful-API, die auf verschiedene HTTP-Methoden angewiesen ist, vor allem auf PUT und DELETE. Ist WebDAV eingeschaltet, verarbeitet es diese Anfragen, bevor sie die Anwendung Babel Licensing Service erreichen, und die API-Callbacks schlagen fehl.
Symptome einer Störung durch WebDAV
Möglicherweise liegt ein WebDAV-Konflikt vor, wenn:
- API-Callbacks mit dem Fehler 405 (Method Not Allowed) fehlschlagen
- PUT- und DELETE-Operationen an die API unerwartete Antworten liefern
- Sie über den Babel Licensing Service keine Daten speichern oder aktualisieren können
- andere API-Operationen korrekt funktionieren, bestimmte Aktualisierungs- und Löschoperationen aber fehlschlagen
WebDAV-Konflikte beheben
Damit der Babel Licensing Service in IIS korrekt arbeitet, müssen Sie WebDAV für die Anwendung ausschalten. Ergänzen oder ändern Sie Ihre Datei web.config mit der folgenden Konfiguration:
<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>Wichtige Konfigurationselemente
-
Das WebDAV-Modul entfernen:
<modules> <remove name="WebDAVModule" /> </modules>Dadurch fängt WebDAV keine HTTP-Anfragen mehr auf Modulebene ab.
-
Den WebDAV-Handler entfernen:
<handlers> <remove name="WebDAV" /> <!-- other handlers here --> </handlers>Dadurch erhält der ASP.NET-Core-Handler alle HTTP-Anfragen, unabhängig vom verwendeten HTTP-Verb.
Speicherort der Web.config
Legen Sie diese Datei web.config im Stammverzeichnis Ihrer Anwendung Babel Licensing Service ab.
Websitespezifische und globale Konfiguration
Die obige Konfiguration schaltet WebDAV nur für die Anwendung Babel Licensing Service aus. Wenn Sie WebDAV für andere Anwendungen auf demselben Server benötigen, können Sie es auf diese Weise gezielt nur dort ausschalten, wo es nötig ist.
Wenn Sie WebDAV lieber global auf Ihrem IIS-Server ausschalten möchten, können Sie das über den IIS Manager tun:
IIS Manager öffnen
Öffnen Sie den IIS Manager.
Server auswählen
Wählen Sie im Bereich „Connections“ (Verbindungen) Ihren Server aus.
WebDAV Authoring Rules öffnen
Doppelklicken Sie auf „WebDAV Authoring Rules“ (WebDAV-Erstellungsregeln).
WebDAV ausschalten
Klicken Sie im Bereich „Actions“ (Aktionen) auf „Disable WebDAV“ (WebDAV deaktivieren).
Konfiguration prüfen
Nachdem Sie die Konfigurationsänderungen angewendet haben:
Anwendungspool neu starten
Starten Sie den Anwendungspool des Babel Licensing Service neu.
API-Callbacks testen
Testen Sie die API-Callbacks, die zuvor fehlgeschlagen sind.
Datenoperationen prüfen
Prüfen Sie, ob das Speichern und Aktualisieren von Daten korrekt funktioniert.
Fehlerbehebung
Wenn die Probleme nach diesen Änderungen weiter bestehen:
- Stellen Sie sicher, dass der Anwendungspool neu gestartet wurde
- Suchen Sie in den IIS-Protokollen nach Fehlermeldungen
- Prüfen Sie, ob die Syntax der web.config korrekt ist
- Vergewissern Sie sich, dass das WebDAV-Modul auf Ihrem Server tatsächlich installiert ist (die Anweisung zum Entfernen ist auch dann unbedenklich, wenn es nicht installiert ist)
- Untersuchen Sie die Anwendungsprotokolle auf API-bezogene Fehler
Für weitere Unterstützung wenden Sie sich mit der Version und den Konfigurationsdetails Ihres IIS-Servers an den Support des Babel Licensing Service.