WebDAV Lock Store Defintions <lockStores>
Общие сведения
Модуль WebDAV предназначен для поддержки нескольких поставщиков хранилищ блокировок, которые определены в webdav/globalSettings/lockStores
коллекции. Ряд <add>
элементов определяет параметры для каждого поставщика блокировки в <lockStores>
коллекции.
Примечание
В настоящее время единственным поставщиком хранилища свойств является webdav_simple_lock, который хранит блокировки WebDAV в памяти. Так как этот поставщик хранит блокировки в памяти, блокировки автоматически освобождаются при перезапуске СЛУЖБ IIS или пула приложений.
Совместимость
Версия | Примечания |
---|---|
IIS 10.0 | Элемент <lockStores> не был изменен в IIS 10.0. |
IIS 8,5 | Элемент <lockStores> не был изменен в IIS 8.5. |
IIS 8,0 | Элемент <lockStores> не был изменен в IIS 8.0. |
IIS 7,5 | Элемент <lockStores> поставляется как компонент IIS 7.5. |
IIS 7.0 | Элемент <lockStores> был представлен в WebDAV 7.5 в рамках отдельной загрузки для IIS 7.0. |
IIS 6,0 | Н/Д |
Примечание
Элемент <lockStores>
был определен в схеме WebDAV 7.0, но был проигнорирован, так как блокировки WebDAV не были реализованы в этой версии.
Примечание
Модули WebDAV 7.0 и WebDAV 7.5 поставляются внеполосно для IIS 7.0, что требует скачивания и установки модулей по следующему URL-адресу:
В Windows 7 и Windows Server 2008 R2 модуль WebDAV 7.5 поставляется в качестве функции для IIS 7.5, поэтому скачивание WebDAV больше не требуется.
Настройка
Для поддержки публикации WebDAV для веб-сервера необходимо установить модуль WebDAV. Для этого выполните следующие действия.
Windows Server 2012 или Windows Server 2012 R2
- На панели задач щелкните Диспетчер сервера.
- В диспетчер сервера откройте меню Управление и выберите пункт Добавить роли и компоненты.
- В мастере добавления ролей и компонентов нажмите кнопку Далее. Выберите тип установки и нажмите кнопку Далее. Выберите целевой сервер и нажмите кнопку Далее.
- На странице Роли сервера разверните узел Веб-сервер (IIS),веб-сервер, узел Общие функции HTTP, а затем выберите Публикация WebDAV. Щелкните Далее.
- На странице Выбор компонентов нажмите кнопку Далее.
- На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
- На странице Результаты нажмите кнопку Закрыть.
Windows 8 или Windows 8.1
- На начальном экране переместите указатель в левый нижний угол, щелкните правой кнопкой мыши кнопку Пуск и выберите пункт панель управления.
- В панель управления щелкните Программы и компоненты, а затем — Включить или выключить компоненты Windows.
- Разверните узел Службы IIS, Веб-службы, Общие функции HTTP, а затем выберите Публикация WebDAV.
- Нажмите кнопку ОК.
- Щелкните Закрыть.
Windows Server 2008 R2
- На панели задач нажмите кнопку Пуск, наведите указатель мыши на пункт Администрирование, а затем щелкните диспетчер сервера.
- В области иерархии диспетчер сервера разверните узел Роли, а затем щелкните Веб-сервер (IIS) .
- В области Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей.
- На странице Выбор служб ролеймастера добавления служб ролей разверните узел Общие функции HTTP, выберите Публикация WebDAV и нажмите кнопку Далее.
- На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
- На странице Результаты нажмите кнопку Закрыть.
Windows 7
- На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
- В панель управления щелкните Программы и компоненты, а затем — Включить или отключить компоненты Windows.
- Разверните узел Службы IIS, затем Службы Интернета, а затем Общие функции HTTP.
- Выберите WebDAV Publishing (Публикация WebDAV) и нажмите кнопку ОК.
Windows Server 2008 или Windows Vista
Скачайте пакет установки по следующему URL-адресу:
Следуйте инструкциям в следующем пошаговом руководстве, чтобы установить модуль WebDAV:
Инструкции
Настройка блокировки WebDAV для веб-сайта
Откройте диспетчер служб 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.
В области Подключения разверните имя сервера, узел Сайты , а затем щелкните имя сайта.
На домашней панели сайта дважды щелкните WebDAV Authoring Rules( Правила разработки webDAV).
Когда откроется страница Правила разработки WebDAV , щелкните Параметры WebDAV в области Действия .
При отображении страницы Параметры WebDAV укажите следующие параметры в разделе Поведение блокировки :
- Задайте для параметра Разрешить блокировкизначение True.
- В поле Блокировать хранилище выберите webdav_simple_lock в раскрывающемся списке.
- Задайте параметр Требовать блокировку для записи в нужное значение.
Завершив действия, нажмите кнопку Применить в области Действия .
Конфигурация
Элемент <lockStores>
можно настроить только на глобальном уровне в файле ApplicationHost.config. Все параметры на уровне сайта или приложения или в файлах Web.config игнорируются.
Атрибуты
Отсутствует.
Дочерние элементы
Элемент | Описание |
---|---|
add |
Необязательный элемент. Задает параметры для поставщика хранилища блокировок. |
Образец конфигурации
В следующем примере приведен пример <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()