Compartir a través de


Sistema de archivos de WebDAV <fileSystem>

Información general

El <fileSystem> elemento del <authoring> elemento especifica cómo interactúa el módulo WebDAV con el sistema de archivos subyacente. Más concretamente, el <fileSystem> elemento contiene atributos que definen si las operaciones de archivo deben ser transaccionales y si los archivos ocultos o directorios virtuales se devolverán en las solicitudes de propiedades, que se usan habitualmente para las listas de directorios.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <fileSystem> no se modificó en IIS 10.0.
IIS 8.5 El elemento <fileSystem> no se modificó en IIS 8.5.
IIS 8.0 El elemento <fileSystem> no se modificó en IIS 8.0.
IIS 7.5 El elemento <fileSystem> del elemento <authoring> se incluye como una característica de IIS 7.5.
IIS 7.0 El elemento <fileSystem> del 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.
    Screenshot shows 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.
    Screenshot of Common H T T P Features pane in Turn Windows features on or off page displaying 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 shows Select Role Services page in Add Role Services Wizard with Web DAV Publishing selected from Common H T T P Features pane.
  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.
    Screenshot displays Common H T T P Features pane expanded and Web DAV Publishing selected.

Windows Server 2008 o Windows Vista

Procedimientos

Cómo permitir que los archivos ocultos se muestren en las respuestas 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.
    Screenshot of Web DAV Authoring Rules feature in Home pane. Web DAV Settings is displayed in Actions pane.

  4. En el panel Acciones, haga clic en Configuración de WebDAV...

  5. En el panel Configuración de WebDAV, elija True para Permitir que los archivos ocultos se muestren si desea que las propiedades de los archivos ocultos se devuelvan en las respuestas de propiedades; de lo contrario, elija False.
    Screenshot of Web DAV Settings pane With Allow Hidden Files to be Listed option set to True. Apply option is shown in the Actions pane.

  6. Haga clic en Aplicar en el panel Acciones.

Configuración

El elemento <fileSystem> se puede configurar en el nivel de servidor en el archivo ApplicationHost.config. Se <fileSystem> omiten los elementos de otros niveles o en los archivos Web.config.

Atributos

Atributo Descripción
allowHiddenFiles Atributo Boolean opcional. True si WebDAV mostrará archivos ocultos en las respuestas a las solicitudes de propiedad; de lo contrario, false.

Nota: Aunque los archivos se puedan ocultar de las solicitudes de propiedad, todavía se pueden solicitar directamente. Por ejemplo, si oculta el archivo Web.config para el sitio web, no se mostrará en las listas de directorios, pero todavía podría abrir el archivo en un editor basado en WebDAV si sabía que existía la ruta de acceso. El valor predeterminado es false.
useTransactionalIo Atributo Boolean opcional. El useTransactionalIo atributo especifica si las operaciones de archivo deben ser transaccionales. Por ejemplo, el procesamiento transaccional ayuda a definir el comportamiento de un servidor si un cliente envía una solicitud MOVE para una serie de archivos y el destino se queda sin espacio de almacenamiento antes de que se haya completado toda la operación. Con el procesamiento transaccional habilitado, se producirá un error en toda la operación. Cuando el procesamiento transaccional está deshabilitado, la operación solo se realizará correctamente parcialmente y los archivos se distribuirán entre el origen y el destino.

Cuando se establece en false, el módulo WebDAV no aplicará ninguna forma de procesamiento transaccional. Cuando se establece en true, el módulo WebDAV aplicará el procesamiento transaccional con errores en la operación si el sistema de archivos base no puede realizar transacciones. El valor predeterminado es false.
hideChildVirtualDirectories Atributo Boolean opcional.

True si los directorios virtuales están ocultos de las solicitudes de WebDAV; de lo contrario, false.

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

El valor predeterminado es false.

Elementos secundarios

Ninguno.

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 configuran las opciones del sistema de archivos WebDAV para que se devuelvan archivos ocultos y directorios virtuales en las respuestas de consulta de propiedades.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoring /fileSystem.allowHiddenFiles:"True" /fileSystem.hideChildVirtualDirectories:"True" /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 fileSystemElement = authoringSection.GetChildElement("fileSystem");
         fileSystemElement["allowHiddenFiles"] = true;
         fileSystemElement["hideChildVirtualDirectories"] = true;

         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 fileSystemElement As ConfigurationElement = authoringSection.GetChildElement("fileSystem")
      fileSystemElement("allowHiddenFiles") = True
      fileSystemElement("hideChildVirtualDirectories") = True

      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 fileSystemElement = authoringSection.ChildElements.Item("fileSystem");
fileSystemElement.Properties.Item("allowHiddenFiles").Value = true;
fileSystemElement.Properties.Item("hideChildVirtualDirectories").Value = true;

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 fileSystemElement = authoringSection.ChildElements.Item("fileSystem")
fileSystemElement.Properties.Item("allowHiddenFiles").Value = True
fileSystemElement.Properties.Item("hideChildVirtualDirectories").Value = True

adminManager.CommitChanges()