Compartir a través de


Creación de WebDAV <Creación>

Información general

El elemento <authoring> especifica la configuración de nivel de sitio para WebDAV. Lo más importante de esta configuración es si la creación de WebDAV está habilitada para el sitio. Los elementos adicionales definen el comportamiento del módulo WebDAV, como las opciones de compatibilidad y cómo funciona el módulo WebDAV con propiedades, bloqueos y el sistema de archivos subyacente.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <authoring> no se modificó en IIS 10.0.
IIS 8.5 El elemento <authoring> no se modificó en IIS 8.5.
IIS 8.0 El elemento <authoring> no se modificó en IIS 8.0.
IIS 7.5 El elemento <authoring> se incluye como una característica de IIS 7.5.
IIS 7.0 El elemento <authoring> se introdujo en WebDAV 7.0, que era una descarga independiente para IIS 7.0.
IIS 6,0 N/D

Nota:

Los módulos WebDAV 7.0 y WebDAV 7.5 enviados fuera de banda para IIS 7.0, que requerían descargar e instalar los módulos desde la siguiente dirección URL:

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

Con Windows 7 y Windows Server 2008 R2, el módulo WebDAV 7.5 se incluye como una característica para IIS 7.5, por lo que la descarga de WebDAV ya no es necesaria.

Configuración

Para admitir la publicación de WebDAV para el servidor web, debe instalar el módulo WebDAV. Para ello, siga estos pasos.

Windows Server 2012 o Windows Server 2012 R2

  1. En la barra de tareas, haga clic en Administrador del servidor.
  2. En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características.
  3. En el asistente para Agregar roles y características, haga clic en Siguiente. Seleccione el tipo de instalación y haga clic en Siguiente. Seleccione el servidor de destino y haga clic en Siguiente.
  4. En la página Roles de servidor, expanda Servidor web (IIS), expanda Servidor web, expanda Características HTTP comunes y después seleccione Publicación de WebDAV. Haga clic en Next.
    Image of Web Server and Common H T T P Features pane expanded with Web DAV Publishing selected.
  5. En la página Seleccionar características, haz clic en Siguiente.
  6. En la página Confirmar selecciones de instalación, haga clic en Instalar.
  7. En la página Resultados , haga clic en Cerrar.

Windows 8 o Windows 8.1

  1. En la pantalla Inicio, mueva el puntero hasta la esquina inferior izquierda, haga clic con el botón derecho en el botón Inicio y, a continuación, haga clic en Panel de control.
  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
  3. Expanda Internet Information Services, expanda World Wide Web Services, expanda Características HTTP comunes, y después seleccione Publicación de WebDAV.
    Image of Common H T T P Features pane in Turn Windows features on or off page expanded with Web DAV Publishing selected.
  4. Haga clic en OK.
  5. Haga clic en Cerrar.

Windows Server 2008 R2

  1. En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor.
  2. En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).
  3. En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.
  4. En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, expanda Características HTTP comunes, seleccione Publicación de WebDAV y después haga clic en Siguiente.
    Screenshot of Common H T T P Features node in Select Role Services page expanded with Web DAV Publishing selected.
  5. En la página Confirmar selecciones de instalación, haz clic en Instalar.
  6. En la página Resultados , haga clic en Cerrar.

Windows 7

  1. En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
  3. Expanda Internet Information Services, después World Wide Web Services y, a continuación, Características HTTP comunes.
  4. Seleccione Publicación de WebDAV y, a continuación, haga clic en Aceptar.
    Image of World Wide Web Services and Common H T T P Features pane expanded on Turn Windows features on or off page with Web DAV Publishing selected.

Windows Server 2008 o Windows Vista

Procedimientos

Habilitación de la publicación de WebDAV

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, expanda el nombre del servidor y después vaya al sitio, aplicación o directorio donde quiere habilitar la publicación de WebDAV.

  3. En el panel Inicio, haga doble clic en Reglas de creación de WebDAV.
    Image of Home pane displaying Web DAV Authoring Rules selected.

  4. En el panel Acciones, haga clic en Habilitar WebDAV.
    Image of Actions pane in Web DAV Authoring Rules page displaying Enable Web DAV option.

Nota:

Una vez que haya habilitado la publicación de WebDAV, tendrá que agregar reglas de creación antes de que los usuarios o grupos puedan publicar contenido en su servidor. Para más información sobre cómo crear reglas de creación, consulte el tema authoringRules.

Configuración

El elemento <authoring> solo se puede configurar en el nivel de sitio en el archivo ApplicationHost.config. Los elementos <authoring> en otros niveles o en archivos Web.config se omiten.

Atributos

Atributo Descripción
compatFlags Atributo flags opcional.

Especifica las opciones de compatibilidad de WebDAV. Hay varios comportamientos que se usaron en versiones anteriores de las implementaciones de WebDAV de Microsoft y las marcas de este atributo especifican cuál de esos comportamientos implementará el nuevo módulo WebDAV.

El atributo compatFlags puede tener uno o varios de los siguientes valores posibles. Si especifica más de un valor, sepárelos con una coma (,). El valor predeterminado es MsAuthorVia, MultiProp, CompactXml, IsHidden, IsCollection.
Valor Descripción
None No se debe usar ninguna opción de compatibilidad.

El valor numérico es 0.
MsAuthorVia

Especifica si el módulo WebDAV debe devolver el encabezado "MS-Author-Via" a los clientes de WebDAV.

Nota: Algunos clientes de WebDAV esperan este encabezado.

El valor numérico es 1.

MultiProp Especifica si se deben permitir varias instrucciones <prop> en solicitudes WebDAV.

Nota: Esto infringe RFC 4918, pero algunas implementaciones anteriores de WebDAV admitía esta sintaxis.


El valor numérico es 2.
CompactXml Especifica si el XML devuelto por el módulo WebDAV debe dar formato jerárquicamente.

Nota: Normalmente, el módulo WebDAV simplemente devolverá respuestas XML sin caracteres CRLF y sin sangría. Esto reduce el tamaño de los datos que se transmiten a través de la conexión, pero es muy difícil leer sin un analizador XML.

El valor numérico es 4.
IsHidden Especifica que se debería admitir la propiedad pseudoviva IsHidden.

Nota: Esta propiedad es un estándar informal que no está definido en RFC 4918.

El valor numérico es 8.
IsCollection Especifica que se debe admitir la propiedad pseudoviva IsCollection.

Nota: Esta propiedad es un estándar informal que no está definido en RFC 4918.

El valor numérico es 16.
enabled Atributo Boolean opcional.

true si la creación de WebDAV está habilitada; de lo contrario, false.

El valor predeterminado es false.
maxAllowedXmlRequestLength Atributo uint opcional.

Especifica la longitud máxima, en bytes, del cuerpo XML de solicitud para las solicitudes WebDAV.

Nota: Este atributo se agregó en WebDAV 7.5 e IIS 7.5.

El valor predeterminado es 1000000.
requireSsl Atributo Boolean opcional.

true si se requiere SSL para la creación de WebDAV; de lo contrario, false. Requerir SSL para la creación de WebDAV agrega una capa adicional de seguridad, pero agrega a la sobrecarga de procesamiento para cada solicitud.

El valor predeterminado es false.

Elementos secundarios

Elemento Descripción
fileSystem Elemento opcional.

Especifica cómo interactúa el módulo WebDAV con el sistema de archivos subyacente.
locks Elemento opcional.

Especifica la configuración de bloqueo de WebDAV.
properties Elemento opcional. Especifica la configuración de la propiedad WebDAV.

Ejemplo de configuración

En el ejemplo siguiente se muestra un elemento de ejemplo <webdav> para el sitio web predeterminado. En este ejemplo se borran las reglas de creación existentes, se agrega una sola regla para el grupo de administradores, se habilita la creación de WebDAV, se especifica que se permiten archivos ocultos, se habilitan los bloqueos de WebDAV, se especifica el proveedor de bloqueos, se habilitan las propiedades de WebDAV y se especifica el espacio de nombres XML predeterminado para la asignación de propiedades.

<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>

Código de ejemplo

En los ejemplos siguientes se habilita la creación de WebDAV para el sitio web predeterminado y se configura el sitio para que SSL no sea necesario para la creación de WebDAV.

AppCmd.exe

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

Nota:

Debe asegurarse de establecer el parámetro de confirmación en apphost cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo 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()

En los ejemplos siguientes se habilitan bloqueos de WebDAV para el sitio web predeterminado mediante el proveedor de bloqueo simple y se configura el sitio para que los bloqueos no sean necesarios para la creación de 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:

Debe asegurarse de establecer el parámetro de confirmación en apphost cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo 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()

En los siguientes ejemplos se configuran las opciones de propiedades de WebDAV para que las consultas de propiedades de profundidad anónimas e infinitas estén deshabilitadas y habilite las propiedades personalizadas con el espacio de nombres XML predeterminado asignado al proveedor de webdav_simple_prop integrado.

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:

Debe asegurarse de establecer el parámetro de confirmación en apphost cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo 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()