Compartilhar via


Sistema de arquivos WebDAV <fileSystem>

Visão geral

O elemento <fileSystem> do elemento <authoring> especifica como o módulo WebDAV interage com o sistema de arquivos subjacente. Mais especificamente, o elemento <fileSystem> contém atributos que definem se as operações de arquivo devem ser transacionais e se arquivos ocultos ou diretórios virtuais serão retornados em solicitações de propriedade, que são comumente usadas para listagens de diretório.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <fileSystem> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <fileSystem> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <fileSystem> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <fileSystem> do elemento <authoring> é fornecido como um recurso do IIS 7.5.
IIS 7.0 O elemento <fileSystem> do elemento <authoring> foi introduzido no WebDAV 7.0, que foi um download separado para o IIS 7.0.
IIS 6,0 N/D

Observação

Os módulos WebDAV 7.0 e WebDAV 7.5 enviados fora de banda para o IIS 7.0, o que exigia o download e a instalação de módulos do seguinte URL:

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

Com o Windows 7 e o Windows Server 2008 R2, o módulo WebDAV 7.5 é fornecido como um recurso para o IIS 7.5, portanto, o download do WebDAV não é mais necessário.

Instalação

Para oferecer suporte à publicação WebDAV para seu servidor Web, você deve instalar o módulo WebDAV. Para fazer isso, execute as etapas a seguir.

Windows Server 2012 R2 ou Windows Server 2012

  1. Na barra de tarefas, clique em Gerenciador do Servidor.
  2. No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos.
  3. No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar.
  4. Na página Funções de Servidor, expanda Servidor Web (IIS), expanda Servidor Web, expanda Recursos HTTP Comuns e, em seguida, selecione Publicação WebDAV. Clique em Avançar.
    Screenshot shows Web Server and Common H T T P Features pane expanded with Web DAV Publishing selected.
  5. Na página Selecionar recursos, clique em Avançar.
  6. Na página Confirmar seleções de instalação, clique em Instalar.
  7. Na página Resultados , clique em Fechar.

Windows 8 ou Windows 8.1

  1. Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.
  3. Expanda Serviços de Informações da Internet, Serviços da World Wide Web, Recursos HTTP Comuns e selecione Publicação WebDAV.
    Screenshot of Common H T T P Features pane in Turn Windows features on or off page displaying Web DAV Publishing selected.
  4. Clique em OK.
  5. Clique em Fechar.

Windows Server 2008 R2

  1. Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
  2. No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).
  3. No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
  4. Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, expanda Recursos HTTP Comuns, selecione Publicação WebDAV e clique em Avançar.
    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. Na página Confirmar Seleções de Instalação, clique em Instalar.
  6. Na página Resultados , clique em Fechar.

Windows 7

  1. Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.
  3. Expanda Serviços de Informações da Internet e, em seguida, Serviços World Wide Web e, em seguida, Recursos HTTP Comuns.
  4. Selecione Publicação WebDAV e clique em OK.
    Screenshot displays Common H T T P Features pane expanded and Web DAV Publishing selected.

Windows Server 2008 ou Windows Vista

Instruções

Como permitir que arquivos ocultos sejam listados em respostas WebDAV

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, expanda o nome do servidor e vá para o site, aplicativo ou diretório em que deseja habilitar a publicação do WebDAV.

  3. No painel Página Inicial, clique duas vezes em Regras de Criação WebDAV.
    Screenshot of Web DAV Authoring Rules feature in Home pane. Web DAV Settings is displayed in Actions pane.

  4. No painel Ações, clique em Configurações do WebDAV...

  5. No painel Configurações do WebDAV, escolha True para Permitir que Arquivos Ocultos Sejam Listados se quiser que as propriedades dos arquivos ocultos sejam retornadas em respostas de propriedade, caso contrário, escolha 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. Clique em Aplicar no painel Ações.

Configuração

O elemento <fileSystem> só é configurável no nível do site no arquivo ApplicationHost.config. Quaisquer elementos <fileSystem> em outros níveis ou em arquivos Web.config são ignorados.

Atributos

Atributo Descrição
allowHiddenFiles Atributo Boolean opcional. true se o WebDAV exibirá arquivos ocultos nas respostas às solicitações de propriedade; caso contrário, false.

Observação: mesmo que os arquivos possam estar ocultos das solicitações de propriedade, eles ainda podem ser solicitados diretamente. Por exemplo, se você ocultasse o arquivo Web.config do seu site, ele não seria exibido nas listagens de diretório, mas ainda poderia abrir o arquivo em um editor baseado em WebDAV se soubesse que o caminho existia. O valor padrão é false.
useTransactionalIo Atributo Boolean opcional. O atributo useTransactionalIo especifica se as operações de arquivo devem ser transacionais. Por exemplo, o processamento de transações ajuda a definir qual deve ser o comportamento de um servidor se um cliente enviar uma solicitação MOVE para uma série de arquivos e o destino ficar sem espaço de armazenamento antes que toda a operação seja concluída. Com o processamento de transações habilitado, toda a operação deve falhar. Quando o processamento de transações é desabilitado, a operação será apenas parcialmente bem-sucedida e os arquivos serão distribuídos entre a origem e o destino.

Quando definido como false, o módulo WebDAV não imporá nenhuma forma de processamento de transações. Quando definido como true, o módulo WebDAV imporá o processamento de transações falhando na operação se o sistema de arquivos base não puder fazer transações. O valor padrão é false.
hideChildVirtualDirectories Atributo Boolean opcional.

true se os diretórios virtuais estiverem ocultos das solicitações de WebDAV; caso contrário, false.

Observação: este atributo foi adicionado no WebDAV 7.5 e IIS 7.5.

O valor padrão é false.

Elementos filho

Nenhum.

Exemplo de configuração

O exemplo a seguir lista um elemento <webdav> de exemplo para o site padrão. Este exemplo limpa todas as regras de criação existentes, adiciona uma única regra para o grupo de administradores, habilita a criação de WebDAV, especifica que arquivos ocultos são permitidos, habilita bloqueios WebDAV e especifica o provedor de bloqueio, habilita propriedades WebDAV e especifica o namespace XML padrão para mapeamento de propriedades.

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

Exemplo de código

Os exemplos a seguir definem as configurações do sistema de arquivos WebDAV para que arquivos ocultos e diretórios virtuais sejam retornados em respostas de consulta de propriedade.

AppCmd.exe

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

Observação

Defina o parâmetro commit para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo 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()