Domanda
Sto cercando di implementare un server WebDAV in ASP.Net. l'app verrà distribuita su IIS 6. Ho visto alcuni framework che forniscono questa funzionalità, ma non riesco a identificare come sono in grado di realizzarla senza (apparentemente) modificare le impostazioni di IIS.
La mia domanda specifica è come configurare IIS e ASP.Net in modo che un IHttpModule / IHttpHandler possa avere l'opportunità di gestire uno qualsiasi dei verbi WebDAV aggiuntivi (ad esempio LOCK, OPTIONS, PROFIND, ecc.)
Soluzione
Non è possibile configurare i verbi WebDAV in IIS 6 senza modificare le impostazioni di IIS. È possibile solo con IIS 7 e versioni successive.
Per gestire tutti i verbi richiesti da WebDAV in IIS 6 è necessario creare una mappa wildacrd dell'applicazione. Fare clic con il tasto destro del mouse sull'applicazione Web nella console MMC di IIS 6 e andare su Proprietà - & Gt; Directory virtuale - & Gt; Configurazione . Fai clic su Inserisci per aggiungere una nuova mappa con caratteri jolly.
- Eseguibile - \ Microsoft.NET \ Framework \ < .Net Versione framework & Gt; \ aspnet_isapi.dll
- Verifica che il file esista - Deselezionato
Nella scheda Home directory delle proprietà dell'applicazione impostare Esegui autorizzazioni su Solo script e consentire letture.
Ecco l'esempio web.config: http: // www .webdavsystem.com / server / prev / v2 / documentazione / hosting_iis_asp_net / webconfig_example
Si noti che questo esempio di web.config è stato appositamente creato e testato con ASP.NET 2.0 su IIS 6 su Server 2003 e IIS 5.1 su XP. Non gestisce & Amp ;,%, + e punti finali (.).
ASP.NET 4.x fornisce i mezzi per gestire eventuali caratteri speciali nel tuo server WebDAV, configurando web.config , inclusi & amp ;,% e '.'. Il web.config che supporta IIS versioni 6-8 è generato da IT Hit WebDAV Server Engine Wizard .
Altri suggerimenti
Consulta gli articoli di Geoff Lane su WebDAV:
- http: //www.zorched .net / 2006/01/20 / aspnet-web-application-senza-aspx-extension / - mostra la configurazione dei verbi nella configurazione di IIS e HttpModule.
- http://www.zorched.net / 2006/02/02 / custom-WebDAV-server-con-net /
- http: //www.zorched .net / 2006/03/01 / more-WebDAV-tips-trucchi-e-bugs /
Darei un'occhiata a questo progetto http://sourceforge.net/projects/webdav/ per un'implementazione di webdav in C #. Se devi costruirne uno tuo, è bello fare riferimento a uno completo; ancora meglio se puoi riutilizzarlo.
Sì, sarà necessario modificare le impostazioni IIS6 per supportare l'associazione del modulo ISAPI per .NET a tutti i tipi di richiesta e non verificare l'esistenza di un file. Non esiste altro modo per eseguire questa operazione su IIS6 poiché i client di sviluppo Web su Windows eseguiranno una richiesta OPTIONS sulla radice (/) del sito Web durante la verifica del supporto di webdav.
II7 ti offre più opzioni ...