Condividi tramite


Creazione di <webDAV>

Panoramica

L'elemento <authoring> specifica le impostazioni a livello di sito per WebDAV. L'aspetto più importante di queste impostazioni è se la creazione webDAV è abilitata per il sito. Altri elementi definiscono il comportamento del modulo WebDAV, ad esempio le opzioni di compatibilità e il funzionamento del modulo WebDAV con proprietà, blocchi e file system sottostante.

Compatibilità

Versione Note
IIS 10.0 L'elemento <authoring> non è stato modificato in IIS 10.0.
IIS 8,5 L'elemento <authoring> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <authoring> non è stato modificato in IIS 8.0.
IIS 7,5 L'elemento <authoring> viene fornito come funzionalità di IIS 7.5.
IIS 7.0 L'elemento <authoring> è stato introdotto in WebDAV 7.0, che era un download separato per IIS 7.0.
IIS 6.0 N/D

Nota

I moduli WebDAV 7.0 e WebDAV 7.5 forniti fuori banda per IIS 7.0, che richiedevano il download e l'installazione dei moduli dall'URL seguente:

https://www.iis.net/expand/WebDAV

Con Windows 7 e Windows Server 2008 R2, il modulo WebDAV 7.5 viene fornito come funzionalità per IIS 7.5, quindi il download di WebDAV non è più necessario.

Installazione

Per supportare la pubblicazione WebDAV per il server Web, è necessario installare il modulo WebDAV. A tale scopo, seguire questa procedura.

Windows Server 2012 o Windows Server 2012 R2

  1. Sulla barra delle applicazioni fare clic su Server Manager.
  2. In Server Manager fare clic sul menu Gestisci e quindi su Aggiungi ruoli e funzionalità.
  3. Nella procedura guidata Aggiungi ruoli e funzionalità fare clic su Avanti. Selezionare il tipo di installazione e fare clic su Avanti. Selezionare il server di destinazione e fare clic su Avanti.
  4. Nella pagina Ruoli server espandere Server Web (IIS), server Web, espandere Server Web, espandere Funzionalità HTTP comuni e quindi selezionare Pubblicazione WebDAV. Fare clic su Avanti.
    Immagine del riquadro Funzionalità Server Web e Common H T T P Features espansa con Pubblicazione DAV Web selezionata.
  5. Nella pagina Selezione funzionalità fare clic su Avanti.
  6. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  7. Nella pagina Risultati fare clic su Chiudi.

Windows 8 o Windows 8.1

  1. Nella schermata Start spostare il puntatore fino all'angolo inferiore sinistro, fare clic con il pulsante destro del mouse sul pulsante Start e quindi scegliere Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
  3. Espandere Internet Information Services, servizi Web a livello globale, funzionalità HTTP comuni, quindi selezionare Pubblicazione WebDAV.
    Immagine del riquadro Funzionalità TT P comuni in Attivare o disattivare le funzionalità di Windows espanse con Pubblicazione DAV Web selezionata.
  4. Fare clic su OK.
  5. Fare clic su Close.

Windows Server 2008 R2

  1. Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Server Manager.
  2. Nel riquadro della gerarchia Server Manager espandere Ruoli, quindi fare clic su Server Web (IIS).
  3. Nel riquadro Server Web (IIS) scorrere fino alla sezione Servizi ruolo e quindi fare clic su Aggiungi servizi ruolo.
  4. Nella pagina Selezione servizi ruolo della Procedura guidata Aggiungi servizi ruolo espandere Funzionalità HTTP comuni, selezionare Pubblicazione WebDAV e quindi fare clic su Avanti.
    Screenshot del nodo Funzionalità TT P comuni nella pagina Selezione servizi ruolo espansa con Pubblicazione DAV Web selezionata.
  5. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  6. Nella pagina Risultati fare clic su Chiudi.

Windows 7

  1. Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
  3. Espandere Internet Information Services, quindi Servizi Web a livello globale e quindi Funzionalità HTTP comuni.
  4. Selezionare WebDAV Publishing (Pubblicazione WebDAV) e quindi fare clic su OK.
    Immagine del riquadro Funzionalità TT P comuni di Servizi Web e Funzionalità TT P comuni espanse nella pagina Attiva o disattiva le funzionalità di Windows con Pubblicazione DAV Web selezionata.

Windows Server 2008 o Windows Vista

Procedure

Come abilitare la pubblicazione WebDAV

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni espandere il nome del server e quindi passare al sito, all'applicazione o alla directory in cui si vuole abilitare la pubblicazione WebDAV.

  3. Nel riquadro Home fare doppio clic su WebDAV Authoring Rules (Regole di creazione WebDAV).
    Immagine del riquadro Home in cui è selezionata l'opzione Regole di creazione web DAV.

  4. Nel riquadro Azioni fare clic su Abilita WebDAV.
    Immagine del riquadro Azioni nella pagina Regole di creazione web DAV che visualizza l'opzione Abilita DAV Web.

Nota

Dopo aver abilitato la pubblicazione WebDAV, è necessario aggiungere regole di creazione prima che gli utenti o i gruppi possano pubblicare contenuto nel server. Per altre informazioni su come creare regole di creazione, vedere l'argomento authoringRules .

Configurazione

L'elemento <authoring> è configurabile solo a livello di sito nel file ApplicationHost.config. Tutti <authoring> gli elementi a altri livelli o in Web.config file vengono ignorati.

Attributi

Attributo Descrizione
compatFlags Attributo flag facoltativo.

Specifica le opzioni di compatibilità per WebDAV. Esistono diversi comportamenti usati nelle versioni precedenti delle implementazioni WebDAV di Microsoft e i flag in questo attributo specificano quali di questi comportamenti implementeranno il nuovo modulo WebDAV.

L'attributo compatFlags può avere uno o più dei valori possibili seguenti. Se si specificano più valori, separarli con una virgola (,). Il valore predefinito è MsAuthorVia, MultiProp, CompactXml, IsHidden, IsCollection.
Valore Descrizione
None Non è necessario usare opzioni di compatibilità.

Il valore numerico è 0.
MsAuthorVia

Specifica se il modulo WebDAV deve restituire l'intestazione "MS-Author-Via" ai client WebDAV.

Nota: alcuni client WebDAV prevedono questa intestazione.

Il valore numerico è 1.

MultiProp Specifica se sono consentite più <prop> istruzioni nelle richieste WebDAV.

Nota: questo viola RFC 4918, ma alcune implementazioni WebDAV precedenti supportano questa sintassi.


Il valore numerico è 2.
CompactXml Specifica se il codice XML restituito dal modulo WebDAV deve essere formattato gerarchicamente.

Nota: normalmente il modulo WebDAV restituirà semplicemente risposte XML senza caratteri CRLF e nessun rientro. Ciò riduce le dimensioni dei dati trasmessi attraverso la rete, ma è molto difficile leggere senza un parser XML.

Il valore numerico è 4.
IsHidden Specifica che la proprietà pseudo-live IsHidden deve essere supportata.

Nota: questa proprietà è uno standard informale non definito in RFC 4918.

Il valore numerico è 8.
IsCollection Specifica che la proprietà pseudo-live IsCollection deve essere supportata.

Nota: questa proprietà è uno standard informale non definito in RFC 4918.

Il valore numerico è 16.
enabled Attributo Boolean facoltativo.

true se la creazione webDAV è abilitata; in caso contrario, false.

Il valore predefinito è false.
maxAllowedXmlRequestLength Attributo uint facoltativo.

Specifica la lunghezza massima, in byte, del corpo XML della richiesta per le richieste WebDAV.

Nota: Questo attributo è stato aggiunto in WebDAV 7.5 e IIS 7.5.

Il valore predefinito è 1000000.
requireSsl Attributo Boolean facoltativo.

true se SSL è obbligatorio per la creazione di WebDAV; in caso contrario, false. La richiesta di creazione DI SSL per WebDAV aggiunge un livello di sicurezza aggiuntivo, ma aggiunge al sovraccarico di elaborazione per ogni richiesta.

Il valore predefinito è false.

Elementi figlio

Elemento Descrizione
fileSystem Elemento facoltativo.

Specifica il modo in cui il modulo WebDAV interagisce con il file system sottostante.
locks Elemento facoltativo.

Specifica le impostazioni di blocco WebDAV.
properties Elemento facoltativo. Specifica le impostazioni delle proprietà WebDAV.

Esempio di configurazione

Nell'esempio seguente viene elencato un elemento di <webdav> esempio per il sito Web predefinito. In questo esempio vengono cancellate le regole di creazione esistenti, aggiunge una singola regola per il gruppo di amministratori, abilita la creazione di WebDAV, specifica che i file nascosti sono consentiti, abilita i blocchi WebDAV e specifica il provider di blocchi e abilita le proprietà WebDAV e specifica lo spazio dei nomi XML predefinito per il mapping delle proprietà.

<location path="Default Web Site">
   <system.webServer>
      <webdav>
         <authoringRules defaultAccess="none" allowNonMimeMapFiles="true" defaultMimeType="text/plain">
            <clear />
            <add roles="administrators" path="*" access="Read, Write, Source" />
         </authoringRules>
         <authoring enabled="true" requireSsl="false">
            <fileSystem allowHiddenFiles="true" />
            <locks enabled="true" lockStore="webdav_simple_lock" requireLockForWriting="false" />
            <properties allowAnonymousPropfind="false" allowInfinitePropfindDepth="false" allowCustomProperties="true">
               <clear />
               <add xmlNamespace="*" propertyStore="webdav_simple_prop" />
            </properties>
         </authoring>
      </webdav>
   </system.webServer>
</location>

Codice di esempio

Gli esempi seguenti abilitano la creazione webDAV per il sito Web predefinito e configurano il sito in modo che SSL non sia necessario per la creazione di WebDAV.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoring /enabled:"True" /requireSsl:"False"  /commit:apphost

Nota

È necessario assicurarsi di impostare il parametro commit su apphost quando si usa AppCmd.exe per configurare queste impostazioni. Questa operazione esegue il commit delle impostazioni di configurazione nella sezione percorso appropriata nel file di ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();

         ConfigurationSection authoringSection = config.GetSection("system.webServer/webdav/authoring", "Default Web Site");
         authoringSection["enabled"] = true;
         authoringSection["requireSsl"] = false;

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration

      Dim authoringSection As ConfigurationSection = config.GetSection("system.webServer/webdav/authoring", "Default Web Site")
      authoringSection("enabled") = True
      authoringSection("requireSsl") = False

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var authoringSection = adminManager.GetAdminSection("system.webServer/webdav/authoring", "MACHINE/WEBROOT/APPHOST/Default Web Site");
authoringSection.Properties.Item("enabled").Value = true;
authoringSection.Properties.Item("requireSsl").Value = false;

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set authoringSection = adminManager.GetAdminSection("system.webServer/webdav/authoring", "MACHINE/WEBROOT/APPHOST/Default Web Site")
authoringSection.Properties.Item("enabled").Value = True
authoringSection.Properties.Item("requireSsl").Value = False

adminManager.CommitChanges()

Gli esempi seguenti abilitano i blocchi WebDAV per il sito Web predefinito usando il provider di blocco semplice e configurano il sito in modo che i blocchi non siano necessari per la creazione di WebDAV.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoring /locks.enabled:"True" /locks.lockStore:"webdav_simple_lock" /locks.requireLockForWriting:"False" /commit:apphost

Nota

È necessario assicurarsi di impostare il parametro commit su apphost quando si usa AppCmd.exe per configurare queste impostazioni. Questa operazione esegue il commit delle impostazioni di configurazione nella sezione percorso appropriata nel file di ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection authoringSection = config.GetSection("system.webServer/webdav/authoring", "Default Web Site");

         ConfigurationElement locksElement = authoringSection.GetChildElement("locks");
         locksElement["enabled"] = true;
         locksElement["lockStore"] = @"webdav_simple_lock";
         locksElement["requireLockForWriting"] = false;

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim authoringSection As ConfigurationSection = config.GetSection("system.webServer/webdav/authoring", "Default Web Site")

      Dim locksElement As ConfigurationElement = authoringSection.GetChildElement("locks")
      locksElement("enabled") = True
      locksElement("lockStore") = "webdav_simple_lock"
      locksElement("requireLockForWriting") = False

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var authoringSection = adminManager.GetAdminSection("system.webServer/webdav/authoring", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var locksElement = authoringSection.ChildElements.Item("locks");
locksElement.Properties.Item("enabled").Value = true;
locksElement.Properties.Item("lockStore").Value = "webdav_simple_lock";
locksElement.Properties.Item("requireLockForWriting").Value = false;

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set authoringSection = adminManager.GetAdminSection("system.webServer/webdav/authoring", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set locksElement = authoringSection.ChildElements.Item("locks")
locksElement.Properties.Item("enabled").Value = True
locksElement.Properties.Item("lockStore").Value = "webdav_simple_lock"
locksElement.Properties.Item("requireLockForWriting").Value = False

adminManager.CommitChanges()

Gli esempi seguenti configurano le impostazioni delle proprietà WebDAV in modo che le query di profondità anonime e infinite siano disabilitate e abilitano proprietà personalizzate con lo spazio dei nomi XML predefinito mappato al provider di webdav_simple_prop predefinito.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoring /properties.allowAnonymousPropfind:"False" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoring /properties.allowInfinitePropfindDepth:"False" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoring /properties.allowCustomProperties:"True" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoring /+"properties.[xmlNamespace='*',propertyStore='webdav_simple_prop']" /commit:apphost

Nota

È necessario assicurarsi di impostare il parametro commit su apphost quando si usa AppCmd.exe per configurare queste impostazioni. Questa operazione esegue il commit delle impostazioni di configurazione nella sezione percorso appropriata nel file di ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection authoringSection = config.GetSection("system.webServer/webdav/authoring", "Default Web Site");

         ConfigurationElement propertiesElement = authoringSection.GetChildElement("properties");
         propertiesElement["allowAnonymousPropfind"] = false;
         propertiesElement["allowInfinitePropfindDepth"] = false;
         propertiesElement["allowCustomProperties"] = true;

         ConfigurationElementCollection propertiesCollection = propertiesElement.GetCollection();

         ConfigurationElement addElement = propertiesCollection.CreateElement("add");
         addElement["xmlNamespace"] = @"*";
         addElement["propertyStore"] = @"webdav_simple_prop";
         propertiesCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim authoringSection As ConfigurationSection = config.GetSection("system.webServer/webdav/authoring", "Default Web Site")

      Dim propertiesElement As ConfigurationElement = authoringSection.GetChildElement("properties")
      propertiesElement("allowAnonymousPropfind") = False
      propertiesElement("allowInfinitePropfindDepth") = False
      propertiesElement("allowCustomProperties") = True

      Dim propertiesCollection As ConfigurationElementCollection = propertiesElement.GetCollection

      Dim addElement As ConfigurationElement = propertiesCollection.CreateElement("add")
      addElement("xmlNamespace") = "*"
      addElement("propertyStore") = "webdav_simple_prop"
      propertiesCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var authoringSection = adminManager.GetAdminSection("system.webServer/webdav/authoring", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var propertiesElement = authoringSection.ChildElements.Item("properties");
propertiesElement.Properties.Item("allowAnonymousPropfind").Value = false;
propertiesElement.Properties.Item("allowInfinitePropfindDepth").Value = false;
propertiesElement.Properties.Item("allowCustomProperties").Value = true;

var propertiesCollection = propertiesElement.Collection;

var addElement = propertiesCollection.CreateNewElement("add");
addElement.Properties.Item("xmlNamespace").Value = "*";
addElement.Properties.Item("propertyStore").Value = "webdav_simple_prop";
propertiesCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set authoringSection = adminManager.GetAdminSection("system.webServer/webdav/authoring", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set propertiesElement = authoringSection.ChildElements.Item("properties")
propertiesElement.Properties.Item("allowAnonymousPropfind").Value = False
propertiesElement.Properties.Item("allowInfinitePropfindDepth").Value = False
propertiesElement.Properties.Item("allowCustomProperties").Value = True

Set propertiesCollection = propertiesElement.Collection

Set addElement = propertiesCollection.CreateNewElement("add")
addElement.Properties.Item("xmlNamespace").Value = "*"
addElement.Properties.Item("propertyStore").Value = "webdav_simple_prop"
propertiesCollection.AddElement(addElement)

adminManager.CommitChanges()