Добавление пространства имен XML в сопоставления <поставщика свойств добавляет>

Общие сведения

Элемент <add><properties> элемента определяет сопоставление пространства имен XML с поставщиком хранилища свойств.

Примечание

WebDAV определяет два типа свойств:

  • Динамические свойства. Эти свойства существуют в базовой файловой системе. Например, имя и размер файла. Эти свойства всегда поддерживаются.
  • "Мертвые" свойства. Эти свойства определяются пользователем и хранятся в хранилище свойств. Например, автор документа или используемый шаблон.

Чтобы использовать "мертвые" свойства, необходимо задать allowCustomProperties<properties> для элемента значение true и определить сопоставление пространства имен XML с поставщиком свойств из списка поставщиков свойств, определенных в <коллекции propertyStores> .

Совместимость

Версия Примечания
IIS 10.0 Элемент <add> не был изменен в IIS 10.0.
IIS 8,5 Элемент <add> не был изменен в IIS 8.5.
IIS 8,0 Элемент <add> не был изменен в IIS 8.0.
IIS 7,5 Элемент <add> входит в <properties> состав iis 7.5.
IIS 7.0 Элемент <add><properties> элемента появился в WebDAV 7.0, который был отдельной загрузкой для IIS 7.0.
IIS 6,0 Н/Д

Настройка

Для поддержки публикации WebDAV для веб-сервера необходимо установить модуль WebDAV. Для этого выполните следующие действия.

Windows Server 2012 или Windows Server 2012 R2

  1. На панели задач щелкните Диспетчер сервера.
  2. В диспетчер сервера откройте меню Управление и выберите пункт Добавить роли и компоненты.
  3. В мастере добавления ролей и компонентов нажмите кнопку Далее. Выберите тип установки и нажмите кнопку Далее. Выберите целевой сервер и нажмите кнопку Далее.
  4. На странице Роли сервера разверните узел Веб-сервер (IIS),веб-сервер, узел Общие функции HTTP, а затем выберите Публикация WebDAV. Щелкните Далее.
    Снимок экрана: каталог компонентов веб-сервера и общий каталог компонентов H TT P, развернутый с выбранным параметром Публикация Web Dav.
  5. На странице Выбор компонентов нажмите кнопку Далее.
  6. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  7. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

  1. На начальном экране переместите указатель в левый нижний угол, щелкните правой кнопкой мыши кнопку Пуск и выберите пункт панель управления.
  2. В панель управления щелкните Программы и компоненты, а затем — Включить или выключить компоненты Windows.
  3. Разверните узел Службы IIS, Веб-службы, Общие функции HTTP, а затем выберите Публикация WebDAV.
    Снимок экрана: окно включения и выключения компонентов Windows с выбранным параметром Веб-публикация DAV.
  4. Нажмите кнопку ОК.
  5. Щелкните Закрыть.

Windows Server 2008 R2

  1. На панели задач нажмите кнопку Пуск, наведите указатель мыши на пункт Администрирование, а затем щелкните диспетчер сервера.
  2. В области иерархии диспетчер сервера разверните узел Роли, а затем щелкните Веб-сервер (IIS) .
  3. В области Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей.
  4. На странице Выбор служб ролеймастера добавления служб ролей разверните узел Общие функции HTTP, выберите Публикация WebDAV и нажмите кнопку Далее.
    Снимок экрана: страница
  5. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  6. На странице Результаты нажмите кнопку Закрыть.

Windows 7

  1. На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
  2. В панель управления щелкните Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узел Службы IIS, затем Службы Интернета, а затем Общие функции HTTP.
  4. Выберите WebDAV Publishing (Публикация 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. В области Подключения разверните имя сервера, узел Сайты , а затем щелкните имя сайта.

  3. На домашней панели сайта дважды щелкните WebDAV Authoring Rules( Правила разработки webDAV).
    Снимок экрана: консоль диспетчера I IS с областью

  4. Когда откроется страница Правила разработки WebDAV , щелкните Параметры WebDAV в области Действия .
    Снимок экрана: страница

  5. При отображении страницы Параметры WebDAV укажите следующие параметры в разделе Поведение свойства :

    • Задайте для параметра Разрешить анонимные запросы свойствзначение False.

    • Задайте для параметра Разрешить пользовательские свойства значение True.

    • Задайте для параметра Разрешить запросы свойств с бесконечной глубиной значение False.

      Снимок экрана: страница

  6. Нажмите кнопку с многоточием (...), чтобы запустить редактор коллекции пространства имен.
    Снимок экрана: редактор коллекции пространства имен с элементом web dav dash simple тире в раскрывающемся списке.

  7. Нажмите кнопку Добавить , а затем выберите webdav_simple_prop в раскрывающемся списке.

  8. Укажите "*" в поле XmlNameSpace и нажмите кнопку ОК.

  9. Выполнив предыдущие шаги, нажмите кнопку Применить на панели Действия .

Конфигурация

Элемент <properties> можно настроить только на уровне сайта в файле ApplicationHost.config. Любые <properties> элементы на других уровнях или в Web.config файлах игнорируются.

Атрибуты

Атрибут Описание
xmlNamespace Обязательный строковый атрибут. Задает пространство имен XML для сопоставления.

Примечание: Подстановочный знак "*" используется для определения сопоставления пространств имен по умолчанию, а любое пространство имен без уникального сопоставления будет использовать сопоставление с подстановочными знаками. Если клиент WebDAV использует пространство имен XML, для которого отсутствует определенное сопоставление пространств имен и сопоставление с подстановочными знаками не существует, то свойства нельзя сохранить. Значение по умолчанию — false.
propertyStore Обязательный строковый атрибут.

Указывает хранилище свойств для сопоставления.

Примечание: Имя хранилища свойств должно быть определено в <коллекции propertyStores> .

Значение по умолчанию — 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 настраиваются таким образом, чтобы анонимные и бесконечные запросы свойств глубины были отключены, и включены пользовательские свойства с пространством имен XML по умолчанию, сопоставленным со встроенным поставщиком webdav_simple_prop .

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

Примечание

При использовании 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 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()