Поделиться через


Добавление хранилищ <блокировки WebDAV>

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

Модуль WebDAV предназначен для поддержки нескольких поставщиков хранилищ блокировок, которые определены в webdav/globalSettings/lockStores коллекции. Ряд <add> элементов определяет параметры для каждого поставщика блокировки в <lockStores> коллекции.

Примечание

В настоящее время единственным поставщиком хранилища свойств является webdav_simple_lock, который хранит блокировки WebDAV в памяти. Так как этот поставщик хранит блокировки в памяти, они автоматически освобождаются при перезапуске IIS или пула приложений.

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

Версия Примечания
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> элемента поставляется <lockStores> как компонент IIS 7.5.
IIS 7.0 Элемент <add><lockStores> элемента был представлен в WebDAV 7.5 в рамках отдельного скачивания для IIS 7.0.
IIS 6,0 Н/Д

Примечание

Элемент <add><lockStores> элемента был определен в схеме WebDAV 7.0, но был проигнорирован, так как блокировки WebDAV не были реализованы в этой версии.

Примечание

Модули 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. Щелкните Далее.
    Снимок экрана: область
  5. На странице Выбор компонентов нажмите кнопку Далее.
  6. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  7. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

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

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

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

    • Установите для параметра Разрешить блокировки значение True.
    • В поле Блокировать хранилище выберите webdav_simple_lock в раскрывающемся списке.
    • Установите параметр Требовать блокировку для записи в нужное значение.
      Снимок экрана: страница параметров Web DAV с отображаемым разделом
  6. Завершив действия, нажмите кнопку Применить на панели Действия .

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

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

Атрибуты

Атрибут Описание
name Обязательный атрибут. Указывает имя поставщика хранилища блокировок.
image Обязательный атрибут. Указывает путь к файловой системе для поставщика хранилища блокировок. Примечание: В 64-разрядной системе это будет 64-разрядный путь, тогда как в 32-разрядной системе он будет содержать путь к 32-разрядному поставщику, и image32 атрибут будет игнорироваться.
image32 Необязательный атрибут. Указывает 32-разрядный путь для поставщика блокировки в 64-разрядной системе. Примечание: Этот атрибут был добавлен в WebDAV 7.5 и IIS 7.5.

Дочерние элементы

Отсутствует.

Образец конфигурации

В следующем примере приведен пример <globalSettings> элемента для сервера WebDAV. В этом примере определяются встроенные простые поставщики для блокировок и свойств, а также включается блокировка 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>

Пример кода

Примечание

Коллекции propertyStores и lockStores заполняются встроенными поставщиками свойств и блокировок при установке WebDAV. В настоящее время эти коллекции поставщиков не расширяемы, поэтому примеры кода в этом разделе предназначены только для справки.

В следующих примерах глобальные параметры WebDAV настраиваются для повторного добавления встроенных поставщиков свойств и блокировок, которые копируются в систему при установке модуля WebDAV.

AppCmd.exe

appcmd.exe set config -section:system.webServer/webdav/globalSettings /+"propertyStores.[name='webdav_simple_prop',image='%windir%\system32\inetsrv\webdav_simple_prop.dll']" /commit:apphost

appcmd.exe set config -section:system.webServer/webdav/globalSettings /+"lockStores.[name='webdav_simple_lock',image='%windir%\system32\inetsrv\webdav_simple_lock.dll']" /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 globalSettingsSection = config.GetSection("system.webServer/webdav/globalSettings");

         ConfigurationElementCollection propertyStoresCollection = globalSettingsSection.GetCollection("propertyStores");

         ConfigurationElement addElement = propertyStoresCollection.CreateElement("add");
         addElement["name"] = @"webdav_simple_prop";
         addElement["image"] = @"%windir%\system32\inetsrv\webdav_simple_prop.dll";
         propertyStoresCollection.Add(addElement);

         ConfigurationElementCollection lockStoresCollection = globalSettingsSection.GetCollection("lockStores");

         ConfigurationElement addElement1 = lockStoresCollection.CreateElement("add");
         addElement1["name"] = @"webdav_simple_lock";
         addElement1["image"] = @"%windir%\system32\inetsrv\webdav_simple_lock.dll";
         lockStoresCollection.Add(addElement1);

         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 globalSettingsSection As ConfigurationSection = config.GetSection("system.webServer/webdav/globalSettings")

      Dim propertyStoresCollection As ConfigurationElementCollection = globalSettingsSection.GetCollection("propertyStores")

      Dim addElement As ConfigurationElement = propertyStoresCollection.CreateElement("add")
      addElement("name") = "webdav_simple_prop"
      addElement("image") = "%windir%\system32\inetsrv\webdav_simple_prop.dll"
      propertyStoresCollection.Add(addElement)

      Dim lockStoresCollection As ConfigurationElementCollection = globalSettingsSection.GetCollection("lockStores")

      Dim addElement1 As ConfigurationElement = lockStoresCollection.CreateElement("add")
      addElement1("name") = "webdav_simple_lock"
      addElement1("image") = "%windir%\system32\inetsrv\webdav_simple_lock.dll"
      lockStoresCollection.Add(addElement1)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

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

var globalSettingsSection = adminManager.GetAdminSection("system.webServer/webdav/globalSettings", "MACHINE/WEBROOT/APPHOST");

var propertyStoresCollection = globalSettingsSection.ChildElements.Item("propertyStores").Collection;

var addElement = propertyStoresCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "webdav_simple_prop";
addElement.Properties.Item("image").Value = "%windir%\\system32\\inetsrv\\webdav_simple_prop.dll";
propertyStoresCollection.AddElement(addElement);

var lockStoresCollection = globalSettingsSection.ChildElements.Item("lockStores").Collection;

var addElement1 = lockStoresCollection.CreateNewElement("add");
addElement1.Properties.Item("name").Value = "webdav_simple_lock";
addElement1.Properties.Item("image").Value = "%windir%\\system32\\inetsrv\\webdav_simple_lock.dll";
lockStoresCollection.AddElement(addElement1);

adminManager.CommitChanges();

VBScript

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

Set globalSettingsSection = adminManager.GetAdminSection("system.webServer/webdav/globalSettings", "MACHINE/WEBROOT/APPHOST")

Set propertyStoresCollection = globalSettingsSection.ChildElements.Item("propertyStores").Collection

Set addElement = propertyStoresCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "webdav_simple_prop"
addElement.Properties.Item("image").Value = "%windir%\system32\inetsrv\webdav_simple_prop.dll"
propertyStoresCollection.AddElement(addElement)

Set lockStoresCollection = globalSettingsSection.ChildElements.Item("lockStores").Collection

Set addElement1 = lockStoresCollection.CreateNewElement("add")
addElement1.Properties.Item("name").Value = "webdav_simple_lock"
addElement1.Properties.Item("image").Value = "%windir%\system32\inetsrv\webdav_simple_lock.dll"
lockStoresCollection.AddElement(addElement1)

adminManager.CommitChanges()