WebDAV <webdav>

개요

<webdav> 요소에는 IIS(인터넷 정보 서비스) 7에 대한 WebDAV(WebDAV)를 구성하는 설정이 포함되어 있습니다. WebDAV는 HTTP 및 HTTPS 연결을 통해 웹 사이트를 편집할 수 있는 인터넷 기반 개방형 표준입니다. WebDAV는 FTP(파일 전송 프로토콜)에 비해 몇 가지 이점을 제공합니다. 가장 주목할 만한 장점은 더 많은 보안 옵션과 모든 통신에 단일 TCP 포트를 사용하는 기능입니다.

호환성

버전 참고
IIS 10.0 <webdav> 요소가 IIS 10.0에서 수정되지 않았습니다.
IIS 8.5 <webdav> 요소가 IIS 8.5에서 수정되지 않았습니다.
IIS 8.0 <webdav> 요소가 IIS 8.0에서 수정되지 않았습니다.
IIS 7.5 요소는 <webdav> IIS 7.5의 기능으로 제공됩니다.
IIS 7.0 요소는 <webdav> 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 게시를 선택합니다. 다음을 클릭합니다.
    WebDAV 옵션이 강조 표시된 서버 역할 페이지의 스크린샷
  5. 기능 선택 페이지에서 다음을 클릭합니다.
  6. 설치 선택 확인 페이지에서 설치를 클릭합니다.
  7. Results(결과) 페이지에서 Close(닫기)를 클릭합니다.

Windows 8 또는 Windows 8.1

  1. 시작 화면에서 포인터를 왼쪽 아래 모서리로 이동하고 시작 단추를 마우스 오른쪽 단추로 클릭한 다음 제어판 클릭합니다.
  2. 제어판프로그램 및 기능을 클릭한 다음 Windows 기능 켜기 또는 끄기를 클릭합니다.
  3. 인터넷 정보 서비스를 확장하고 World Wide Web Services를 확장하고 일반적인 HTTP 기능을 확장한 다음 WebDAV 게시를 선택합니다.
    Internet Information Services 폴더 내의 WebDAV 게시 폴더에 포커스가 있는 Windows 기능 대화 상자의 스크린샷
  4. 확인을 클릭합니다.
  5. 닫기를 클릭합니다.

Windows Server 2008 R2

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

Windows 7

  1. 작업 표시줄에서 시작을 클릭한 다음 제어판 클릭합니다.
  2. 제어판프로그램 및 기능을 클릭한 다음 Windows 기능 켜기 또는 끄기를 클릭합니다.
  3. 인터넷 정보 서비스, World Wide Web Services, 일반 HTTP 기능을 차례로 확장합니다.
  4. WebDAV 게시를 선택한 다음 확인을 클릭합니다.
    World Wide Web Services 및 일반 H T T P 폴더 내의 WebDAV 게시 폴더에 포커스가 있는 Windows 기능 켜기 또는 끄기 마법사의 스크린샷

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 작성 규칙을 두 번 클릭합니다.
    WebDAV 작성 규칙 애플리케이션 바로 가기에 포커스가 있는 I S 관리자의 홈 창 스크린샷

  4. 작업 창에서 WebDAV 사용을 클릭합니다.
    WebDAV 사용 옵션에 포커스가 있는 IS Manager 화면의 작업 창 스크린샷

참고

WebDAV 게시를 사용하도록 설정한 후에는 사용자 또는 그룹이 서버에 콘텐츠를 게시하기 전에 제작 규칙을 추가해야 합니다. 제작 규칙을 만드는 방법에 대한 자세한 내용은 항목을 참조하세요 authoringRules .


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. 연결 창에서 서버 이름을 확장한 다음 디렉터리 검색을 사용하도록 설정할 사이트, 애플리케이션 또는 디렉터리로 이동합니다.

  3. 창에서 WebDAV 작성 규칙을 두 번 클릭합니다.
    WebDAV 작성 규칙 바로 가기에 포커스가 있는 기본 웹 사이트 홈 화면의 홈 창 스크린샷

  4. 작업 창에서 작성 규칙 추가...를 클릭합니다.
    작성 규칙 추가 옵션에 포커스가 있는 WebDav Authoring Rules 화면의 작업 창 스크린샷

  5. 작성 규칙 추가 대화 상자에서 다음 옵션을 지정합니다.

    • 액세스 허용: 제작 규칙을 모든 콘텐츠 형식에 적용할지 또는 허용할 특정 콘텐츠 형식을 지정할지 여부를 지정합니다.
    • 이 콘텐츠에 대한 액세스 허용: 작성 규칙을 모든 사용자, 특정 그룹 또는 역할 또는 특정 사용자에게 적용할지 여부를 지정합니다.
    • 사용 권한: 제작 규칙에서 지정된 콘텐츠 형식 및 사용자에 대해 읽기, 쓰기 또는 원본 액세스를 허용할지 여부를 지정합니다.
      작성 규칙 추가 대화 상자의 스크린샷.
  6. 확인을 클릭합니다.

구성

요소는 <webdav> ApplicationHost.config 파일의 전역, 사이트 및 디렉터리 수준에서 구성할 수 있습니다. Web.config 파일의 WebDAV 설정은 무시됩니다.

특성

없음

자식 요소

요소 Description
authoring 선택적 요소입니다.

WebDAV 작성에 대한 구성 설정을 지정합니다.
authoringRules 선택적 요소입니다.

WebDAV 게시에 대한 제작 규칙을 지정합니다. 이러한 규칙은 사용자 또는 그룹에 대한 콘텐츠 형식 및 제작 권한을 지정합니다.
globalSettings 선택적 요소입니다. WebDAV 모듈에 대한 전역 설정을 지정합니다.

구성 샘플

다음 예제에서는 기본 웹 사이트에 대한 샘플 <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 서버에 대한 샘플 <globalSettings> 요소를 나열합니다. 이 예제에서는 잠금 및 속성에 대한 기본 제공 단순 공급자를 정의하고 서버에 대해 WebDAV 잠금을 사용하도록 설정합니다.

<system.webServer>
      <webdav>
         <globalSettings>
            <propertyStores>
               <add name="webdav_simple_prop" image="%windir%\system32\inetsrv\webdav_simple_prop.dll" />
            </propertyStores>
            <lockStores>
               <add name="webdav_simple_lock" image="%windir%\system32\inetsrv\webdav_simple_lock.dll" />
            </lockStores>
         </globalSettings>
         <authoring>
            <locks enabled="true" lockStore="webdav_simple_lock" />
         </authoring>
      </webdav>
   </system.webServer>

샘플 코드

다음 예제에서는 기본 웹 사이트에 대해 WebDAV 작성을 사용하도록 설정하고 WebDAV 작성에 SSL이 필요하지 않도록 사이트를 구성합니다.

AppCmd.exe

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

참고

AppCmd.exe 사용하여 이러한 설정을 구성할 때 commit 매개 변수 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");
         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()

다음 예제에서는 WebDAV 클라이언트가 IIS MIME 맵에 나열되지 않은 파일을 게시하고 관리자 그룹에 읽기, 쓰기 및 원본 액세스 권한을 부여하는 단일 제작 규칙을 추가할 수 있도록 WebDAV 제작 규칙을 구성 합니다 .

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoringRules /allowNonMimeMapFiles:"True" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoringRules /+"[roles='administrators',path='*',access='Read, Write, Source']" /commit:apphost

참고

AppCmd.exe 사용하여 이러한 설정을 구성할 때 commit 매개 변수 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 authoringRulesSection = config.GetSection("system.webServer/webdav/authoringRules", "Default Web Site");
         authoringRulesSection["allowNonMimeMapFiles"] = true;

         ConfigurationElementCollection authoringRulesCollection = authoringRulesSection.GetCollection();

         ConfigurationElement addElement = authoringRulesCollection.CreateElement("add");
         addElement["roles"] = @"administrators";
         addElement["path"] = @"*";
         addElement["access"] = @"Read, Write, Source";
         authoringRulesCollection.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 authoringRulesSection As ConfigurationSection = config.GetSection("system.webServer/webdav/authoringRules", "Default Web Site")
      authoringRulesSection("allowNonMimeMapFiles") = True

      Dim authoringRulesCollection As ConfigurationElementCollection = authoringRulesSection.GetCollection

      Dim addElement As ConfigurationElement = authoringRulesCollection.CreateElement("add")
      addElement("roles") = "administrators"
      addElement("path") = "*"
      addElement("access") = "Read, Write, Source"
      authoringRulesCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

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

var authoringRulesSection = adminManager.GetAdminSection("system.webServer/webdav/authoringRules", "MACHINE/WEBROOT/APPHOST/Default Web Site");
authoringRulesSection.Properties.Item("allowNonMimeMapFiles").Value = true;

var authoringRulesCollection = authoringRulesSection.Collection;

var addElement = authoringRulesCollection.CreateNewElement("add");
addElement.Properties.Item("roles").Value = "administrators";
addElement.Properties.Item("path").Value = "*";
addElement.Properties.Item("access").Value = "Read, Write, Source";
authoringRulesCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

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

Set authoringRulesSection = adminManager.GetAdminSection("system.webServer/webdav/authoringRules", "MACHINE/WEBROOT/APPHOST/Default Web Site")
authoringRulesSection.Properties.Item("allowNonMimeMapFiles").Value = True

Set authoringRulesCollection = authoringRulesSection.Collection

Set addElement = authoringRulesCollection.CreateNewElement("add")
addElement.Properties.Item("roles").Value = "administrators"
addElement.Properties.Item("path").Value = "*"
addElement.Properties.Item("access").Value = "Read, Write, Source"
authoringRulesCollection.AddElement(addElement)

adminManager.CommitChanges()