Configurazione di IIS WebDAV
Quando ospiti il Babel Licensing Service su Internet Information Services (IIS), potresti riscontrare problemi con le callback dell’API se sul server è abilitato WebDAV. Questo documento spiega perché si verificano questi conflitti e indica i passi di configurazione per risolverli.
Capire il conflitto con WebDAV
WebDAV (Web Distributed Authoring and Versioning) è un’estensione di HTTP che permette la modifica collaborativa e la gestione dei file sui server web. Quando è abilitato in IIS, WebDAV intercetta alcuni metodi HTTP, tra cui:
- PUT
- DELETE
- PROPFIND
- PROPPATCH
- MKCOL
- COPY
- MOVE
- LOCK
- UNLOCK
Il Babel Licensing Service usa un’API RESTful che si basa su diversi metodi HTTP, in particolare PUT e DELETE. Quando WebDAV è abilitato, elabora queste richieste prima che possano raggiungere l’applicazione Babel Licensing Service, e le callback dell’API falliscono.
Sintomi dell’interferenza di WebDAV
Potresti essere di fronte a un conflitto con WebDAV se:
- Le callback dell’API falliscono con errori 405 (Method Not Allowed)
- Le operazioni PUT e DELETE verso l’API danno risposte inattese
- Non riesci a salvare o aggiornare i dati tramite il Babel Licensing Service
- Le altre operazioni dell’API funzionano correttamente, ma alcune operazioni di aggiornamento ed eliminazione falliscono
Risolvere i conflitti con WebDAV
Perché il Babel Licensing Service funzioni correttamente in IIS, devi disabilitare WebDAV per l’applicazione. Aggiungi o modifica il tuo file web.config con la seguente configurazione:
<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>Elementi chiave della configurazione
-
Rimozione del modulo WebDAV:
<modules> <remove name="WebDAVModule" /> </modules>In questo modo WebDAV non intercetta le richieste HTTP a livello di modulo.
-
Rimozione del gestore WebDAV:
<handlers> <remove name="WebDAV" /> <!-- other handlers here --> </handlers>In questo modo il gestore ASP.NET Core riceve tutte le richieste HTTP, qualunque sia il verbo HTTP usato.
Posizione del file web.config
Assicurati che questo file web.config si trovi nella cartella radice della tua applicazione Babel Licensing Service.
Configurazione specifica del sito o globale
La configurazione qui sopra disabilita WebDAV solo per l’applicazione Babel Licensing Service. Se WebDAV ti serve per altre applicazioni sullo stesso server, questo approccio ti permette di disabilitarlo in modo selettivo solo dove necessario.
Se preferisci disabilitare WebDAV globalmente sul tuo server IIS, puoi farlo da IIS Manager:
Apri IIS Manager
Apri IIS Manager.
Seleziona il tuo server
Seleziona il tuo server nel pannello Connections.
Apri WebDAV Authoring Rules
Fai doppio clic su “WebDAV Authoring Rules”.
Disabilita WebDAV
Nel pannello Actions, fai clic su “Disable WebDAV”.
Verificare la configurazione
Dopo aver applicato le modifiche alla configurazione:
Riavvia il pool di applicazioni
Riavvia il pool di applicazioni del Babel Licensing Service.
Prova le callback dell’API
Prova le callback dell’API che prima fallivano.
Verifica le operazioni sui dati
Verifica che il salvataggio e l’aggiornamento dei dati funzionino correttamente.
Risoluzione dei problemi
Se i problemi persistono dopo aver applicato queste modifiche:
- Assicurati che il pool di applicazioni sia stato riavviato
- Controlla i log di IIS alla ricerca di messaggi di errore
- Verifica che la sintassi del file web.config sia corretta
- Conferma che il modulo WebDAV sia effettivamente installato sul tuo server (la direttiva di rimozione è comunque sicura anche se non lo è)
- Esamina i log dell’applicazione alla ricerca di errori relativi all’API
Se ti serve altro aiuto, contatta l’assistenza del Babel Licensing Service indicando la versione del tuo server IIS e i dettagli della configurazione.