WebDAV 파일 시스템 <파일시스템>

개요

<fileSystem> 요소의 <authoring> 요소는 WebDAV 모듈이 기본 파일 시스템과 상호 작용하는 방법을 지정합니다. 더 구체적으로, <fileSystem> 요소에는 파일 작업이 트랜잭션이어야 하는지 여부와 디렉터리 목록에 일반적으로 사용되는 속성 요청에서 숨겨진 파일 또는 가상 디렉터리가 반환되는지 여부를 정의하는 특성이 포함되어 있습니다.

호환성

버전 참고
IIS 10.0 <fileSystem> 요소가 IIS 10.0에서 수정되지 않았습니다.
IIS 8.5 <fileSystem> 요소가 IIS 8.5에서 수정되지 않았습니다.
IIS 8.0 <fileSystem> 요소가 IIS 8.0에서 수정되지 않았습니다.
IIS 7.5 <fileSystem> 요소의 <authoring> 요소는 IIS 7.5의 기능으로 제공됩니다.
IIS 7.0 <fileSystem> 요소의 <authoring> 요소는 IIS 7.0에 대한 별도의 다운로드인 WebDAV 7.0에서 도입되었습니다.
IIS 6.0 해당 없음

참고

WebDAV 7.0 및 WebDAV 7.5 모듈은 IIS 7.0용 대역 외로 제공되었으며, 다음 URL에서 모듈을 다운로드하고 설치해야 했습니다.

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

Windows 7 및 Windows Server 2008 R2에서는 WebDAV 7.5 모듈이 IIS 7.5용 기능으로 제공되므로 WebDAV를 다운로드할 필요가 없습니다.

설치 프로그램

웹 서버에 대한 WebDAV 게시를 지원하려면 WebDAV 모듈을 설치해야 합니다. 이렇게 하려면 다음 단계를 수행합니다.

Windows Server 2012 또는 Windows Server 2012 R2

  1. 작업 표시줄에서 서버 관리자를 클릭합니다.
  2. 서버 관리자관리 메뉴를 클릭한 다음 역할 및 기능 추가를 클릭합니다.
  3. 역할 및 기능 추가 마법사에서 다음을 클릭합니다. 설치 유형을 선택하고 다음을 클릭합니다. 대상 서버를 선택하고 다음을 클릭합니다.
  4. 서버 역할 페이지에서 웹 서버(IIS)를 확장하고, 웹 서버를 확장하고, 일반적인 HTTP 기능을 확장한 다음, WebDAV 게시를 선택합니다. 다음을 클릭합니다.
    스크린샷은 웹 DAV 게시가 선택된 상태에서 확장된 웹 서버 및 일반적인 H TT P 기능 창을 보여줍니다.
  5. 기능 선택 페이지에서 다음을 클릭합니다.
  6. 설치 선택 확인 페이지에서 설치를 클릭합니다.
  7. Results(결과) 페이지에서 Close(닫기)를 클릭합니다.

Windows 8 또는 Windows 8.1

  1. 시작 화면에서 포인터를 왼쪽 아래 모서리로 이동하고 시작 단추를 마우스 오른쪽 단추로 클릭한 다음 제어판 클릭합니다.
  2. 제어판프로그램 및 기능을 클릭한 다음 Windows 기능 켜기 또는 끄기를 클릭합니다.
  3. 인터넷 정보 서비스를 확장하고, World Wide Web Services를 확장하고, 일반적인 HTTP 기능을 확장한 다음, WebDAV 게시를 선택합니다.
    선택한 웹 DAV 게시를 표시하는 Windows 기능 켜기 또는 끄기 페이지의 일반적인 H T TP 기능 창 스크린샷
  4. 확인을 클릭합니다.
  5. 닫기를 클릭합니다.

Windows Server 2008 R2

  1. 작업 표시줄에서 시작을 클릭하고 관리 도구를 가리킨 다음 서버 관리자 클릭합니다.
  2. 서버 관리자 계층 구조 창에서 역할을 확장한 다음 웹 서버(IIS)를 클릭합니다.
  3. 웹 서버(IIS) 창에서 Role Services 섹션으로 스크롤한 다음 역할 서비스 추가를 클릭합니다.
  4. 역할 서비스 추가 마법사역할 서비스 선택 페이지에서 일반적인 HTTP 기능을 확장하고 WebDAV 게시를 선택한 다음 다음을 클릭합니다.
    스크린샷은 일반적인 H T TP 기능 창에서 웹 DAV 게시가 선택된 역할 서비스 추가 마법사의 역할 서비스 선택 페이지를 보여줍니다.
  5. 설치 선택 확인 페이지에서 설치를 클릭합니다.
  6. Results(결과) 페이지에서 Close(닫기)를 클릭합니다.

Windows 7

  1. 작업 표시줄에서 시작을 클릭한 다음 제어판 클릭합니다.
  2. 제어판프로그램 및 기능을 클릭한 다음 Windows 기능 켜기 또는 끄기를 클릭합니다.
  3. 인터넷 정보 서비스, World Wide Web Services, 일반 HTTP 기능을 차례로 확장합니다.
  4. WebDAV 게시를 선택한 다음 확인을 클릭합니다.
    스크린샷은 일반 H T TP 기능 창이 확장되고 웹 DAV 게시가 선택된 것을 보여 줍니다.

Windows Server 2008 또는 Windows Vista

방법

WebDAV 응답에 숨겨진 파일을 나열하도록 허용하는 방법

  1. IIS(인터넷 정보 서비스) 관리자를 엽니다.

    • Windows Server 2012 또는 Windows Server 2012 R2를 사용하는 경우:

      • 작업 표시줄에서 서버 관리자 클릭하고 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
    • Windows 8 또는 Windows 8.1 사용하는 경우:

      • Windows 키를 누른 채로 문자 X를 누른 다음 제어판 클릭합니다.
      • 관리 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
    • Windows Server 2008 또는 Windows Server 2008 R2를 사용하는 경우:

      • 작업 표시줄에서 시작을 클릭하고 관리 도구를 가리킨 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
    • Windows Vista 또는 Windows 7을 사용하는 경우:

      • 작업 표시줄에서 시작을 클릭한 다음 제어판 클릭합니다.
      • 관리 도구를 두 번 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
  2. 연결 창에서 서버 이름을 확장한 다음 WebDAV 게시를 사용하도록 설정할 사이트, 애플리케이션 또는 디렉터리로 이동합니다.

  3. 창에서 WebDAV 제작 규칙을 두 번 클릭합니다.
    홈 창의 웹 DAV 작성 규칙 기능 스크린샷 웹 DAV 설정이 작업 창에 표시됩니다.

  4. 작업 창에서 WebDAV 설정...을 클릭합니다.

  5. 숨겨진 파일의 속성을 속성 응답에 반환하려면 WebDAV 설정 창에서 숨겨진 파일이 나열되도록 허용하려면 True를 선택합니다. 그렇지 않으면 False를 선택합니다.
    숨겨진 파일을 나열할 수 있도록 허용 옵션이 True로 설정된 웹 DAV 설정 창의 스크린샷 적용 옵션은 작업 창에 표시됩니다.

  6. 작업 창에서 적용을 클릭합니다.

구성

요소는 <fileSystem> ApplicationHost.config 파일의 사이트 수준에서만 구성할 수 있습니다. 다른 수준 또는 Web.config 파일의 모든 <fileSystem> 요소는 무시됩니다.

특성

attribute Description
allowHiddenFiles 선택적 부울 특성입니다. WebDAV 가 속성 요청에 대한 응답에 숨겨진 파일을 표시하면 true입니다. 그렇지 않으면 false입니다.

참고: 파일은 속성 요청에서 숨겨질 수 있지만 여전히 직접 요청할 수 있습니다. 예를 들어 웹 사이트에 대한 Web.config 파일을 숨긴 경우 디렉터리 목록에 표시되지 않지만 경로가 있다는 것을 알고 있으면 WebDAV 기반 편집기에서 파일을 계속 열 수 있습니다. 기본값은 false입니다.
useTransactionalIo 선택적 부울 특성입니다. 특성은 useTransactionalIo 파일 작업이 트랜잭션이어야 하는지 여부를 지정합니다. 예를 들어 트랜잭션 처리는 클라이언트가 일련의 파일에 대한 MOVE 요청을 보내고 전체 작업이 완료되기 전에 대상에 스토리지 공간이 부족할 경우 서버의 동작을 정의하는 데 도움이 됩니다. 트랜잭션 처리를 사용하도록 설정하면 전체 작업이 실패합니다. 트랜잭션 처리를 사용하지 않도록 설정하면 작업이 부분적으로만 성공하고 파일이 원본과 대상 간에 배포됩니다.

false로 설정하면 WebDAV 모듈은 어떤 형태의 트랜잭션 처리도 적용하지 않습니다. true로 설정하면 WebDAV 모듈은 기본 파일 시스템에서 트랜잭션을 수행할 수 없는 경우 작업을 실패시켜 트랜잭션 처리를 적용합니다. 기본값은 false입니다.
hideChildVirtualDirectories 선택적 부울 특성입니다.

가상 디렉터리를 WebDAV 요청에서 숨기면 true이고, 그렇지 않으면 false입니다.

참고: 이 특성은 WebDAV 7.5 및 IIS 7.5에 추가되었습니다.

기본값은 false입니다.

자식 요소

없음

구성 샘플

다음 예제에서는 기본 웹 사이트의 샘플 <webdav> 요소를 나열합니다. 다음은 기존 작성 규칙을 지우고, 관리자 그룹에 대한 단일 규칙을 추가하고, WebDAV 작성을 사용하도록 설정하고, 숨겨진 파일이 허용되도록 지정하고, WebDAV 잠금을 사용하도록 설정하고, 잠금 공급자를 지정하며, WebDAV 속성을 사용하도록 설정하고 속성 매핑에 대한 기본 XML 네임스페이스를 지정하는 예제입니다.

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

샘플 코드

다음 예제에서는 숨겨진 파일 및 가상 디렉터리를 속성 쿼리 응답에 반환되도록 WebDAV 파일 시스템 설정을 구성합니다.

AppCmd.exe

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

참고

AppCmd.exe 사용하여 이러한 설정을 구성할 때 커밋 매개 변수 apphost 를 로 설정해야 합니다. 그러면 구성 설정이 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()