В версии 3 веб-развертывание представляет функцию автоматического резервного копирования на стороне сервера для IIS 7 и более поздних версий. Когда автоматическое резервное копирование настроено на сервере и пользователь публикует на своем сайте с помощью веб-развертывания, он сначала создает резервную копию динамического сайта и сохраняет его на сервере перед фиксацией каких-либо изменений на сайте. Если по какой-либо причине произошел сбой публикации или пользователь хочет восстановить более раннюю версию своего веб-сайта, он сможет выполнить восстановление из этих резервных копий без участия администратора сервера. Эта функция должна быть включена и настроена администратором сервера, прежде чем конечный пользователь сможет воспользоваться ею.
При создании резервных копий
Когда веб-развертывание обнаруживает, что пользователь публикует с помощью поставщика contentPath, iisApp или appHostConfig, оно автоматически запускает резервное копирование (если оно включено на сервере). Во многих случаях эти поставщики также включаются в публикации с помощью веб-матрицы и Visual Studio. Ниже приведен пример командной строки синхронизации, которая инициирует резервное копирование в remoteComputerName с помощью веб-Deployment Agent.
Если поставщиком источника является манифест, веб-развертывание проверит все поставщики в манифесте, чтобы определить, является ли какой-либо из поставщиков в манифесте поставщиком contentPath, iisApp или appHostConfig. Если это так, он инициирует резервное копирование для ВСЕХ поставщиков (см. раздел "Известные проблемы и ограничения" для исключений) в манифесте. Однако если существуют конфликтующие пути поставщика (например, один указывает на сайт "foo", а другой указывает на "панель" сайта), веб-развертывание не будет создавать резервную копию.
Что содержит резервная копия
По умолчанию веб-развертывание будет использовать все поставщики, указанные для публикации (за исключением setAcl, который никогда не включается) для создания резервной копии. Поэтому при публикации с помощью поставщика iisApp и dbFullSql веб-развертывание создаст резервную копию поставщиков iisApp и dbFullSql на сервере. Это будет включать все содержимое и конфигурацию, принадлежащие веб-приложению, а также скрипт базы данных, который можно использовать для повторной публикации веб-приложения. Это поведение по умолчанию можно изменить, изменив параметр резервного копирования ExcludedProviders или указав правила пропуска перед публикацией.
Эти резервные копии являются допустимыми пакетами веб-развертывания, которые можно скопировать и использовать с веб-развертыванием на любом совместимом сервере IIS.
Настройка функции автоматического резервного копирования на сервере (для администраторов сервера)
Чтобы предоставить пользователям функцию автоматического резервного копирования, администратору сервера необходимо подготовить место на сервере, где могут храниться эти резервные копии. Это пространство может быть физически расположено на сервере или в общей сетевой папке, доступной с сервера.
Объем необходимого пространства будет зависеть от размера отдельных приложений и количества резервных копий, которые вы планируете хранить на сервере. Если вы хотите контролировать пространство, занимаемое резервными копиями, следует создать отдельную папку для каждого сайта и использовать Resource Manager файлового сервера Windows (FSRM) для ограничения квот отдельных папок. В качестве рекомендаций по обеспечению безопасности следует также использовать список ACL для этих папок, чтобы каждый пользователь получил доступ на чтение и запись только к своей папке.
Резервные копии можно включить глобально на сервере, чтобы все сайты могли воспользоваться преимуществами, или настроить их для каждого сайта.
Автоматическая настройка параметров резервного копирования на сервере для глобального использования с помощью PowerShell
Скрипт PowerShell для настройки функции резервного копирования на уровне сервера можно найти в разделе %programfiles%\IIS\Microsoft Web Deploy V3\scripts\BackupScripts.ps1. Чтобы загрузить его, просто перейдите в этот каталог в PowerShell и выполните следующую команду:
Консоль
. .\BackupScripts.ps1
При этом в сеанс будут загружены следующие функции, которые можно использовать для настройки резервного копирования.
TurnOn-Backups. Включает и выключает резервные копии для всего сервера.
Configure-Backups( Настройка резервного копирования). Задает параметры резервного копирования сервера или сайта по умолчанию.
Configure-BackupSettingsProvider: управляет параметрами сервера для контроля, который администратор сайта будет иметь над их поведением резервного копирования.
Get-BackupSettings: запрашивает параметры резервного копирования сервера или сайта.
Reset-BackupSettings: сбрасывает параметры резервного копирования сервера или сайта.
Функция TurnOn-Backups:
Позволяет администратору сервера включать или отключать резервные копии на серверном область без перезаписи параметров сайта. По умолчанию резервные копии отключены. Даже после включения резервных копий резервные копии должны быть "включены" на уровне сервера или сайта, чтобы создавать резервные копии.
PowerShell
# Turns on all backup functionalityTurnOn-Backups -On$true# Turns off all backup functionalityTurnOn-Backups -On$false
Настройка резервного копирования.
Позволяет администратору сервера настроить поведение резервного копирования по умолчанию на область SERVER или SITE. Если администратор указывает параметр на сервере область, а сайт уже указал параметр для конкретного сайта, веб-развертывание предпочтет параметры конкретного сайта параметрам сервера. Если администратор сервера хочет, чтобы параметры сервера следовали предпочтениям, ему следует сбросить параметры резервного копирования сайта, что приведет к автоматическому наследованию параметров сайта от сервера.
PowerShell
# Changes default global backup behavior to enabledConfigure-Backups -Enabled$true# Changes default backup behavior for site "foo" to enabledConfigure-Backups -SiteName"foo" -Enabled$true# Changes the path of where backups are stored to a sibling directory named "siteName_snapshots". # For more information about path variables, see the "backupPath" attribute in the section # "Configuring Backup Settings on the Server for Global usage manually in IIS Config"Configure-Backups -BackupPath"{SitePathParent}\{siteName}_snapshots"# Configures default backup limit to 5 backupsConfigure-Backups -NumberOfBackups5# Configures sync behavior to fail if a sync fails for any reasonConfigure-Backups -ContinueSyncOnBackupFailure$false# Adds providers to skip when performing a backupConfigure-Backups -AddExcludedProviders @("dbmysql","dbfullsql")
Configure-BackupSettingsProvider:
Администраторы сайтов могут изменять параметры резервного копирования для конкретного сайта с помощью BackupSettingsProvider с веб-развертыванием. Эта функция позволяет администратору сервера точно управлять параметрами, которые может настроить администратор сайта.
PowerShell
# Allows a site administrator to enable backups and set the number of backups at the site levelConfigure-BackupSettingsProvider -CanSetEnabled$true -CanSetNumBackups$true# Allows a site administrator to control which providers they want to skip in a backup, as # well as whether they can continue a sync after a backup failureConfigure-BackupSettingsProvider -CanSetContinueSyncOnBackupFailure$true -CanAddExcludedProviders$true
Get-BackupSettings
Запрашивает параметры резервного копирования сервера или сайта.
PowerShell
# Grabs the global default backup settingsGet-BackupSettings# Grabs a sites-specific backup settingsGet-BackupSettings -SiteName"foo"
Reset-BackupSettings
Сбрасывает параметры резервного копирования сервера или сайта. При сбросе параметров резервного копирования сайтов они будут автоматически наследоваться от параметров резервного копирования серверов.
PowerShell
# Resets the global default backup settingsReset-BackupSettings# Resets a sites backup settingsReset-BackupSettings -SiteName"foo"
Настройка параметров резервного копирования на сервере для глобального использования вручную в конфигурации IIS
Глобальные параметры резервного копирования
Следующие глобальные параметры резервного копирования можно настроить непосредственно в системе конфигурации IIS в разделе %windir%\system32\inetsrv\config\applicationhost.config.
enabled — (по умолчанию = "false") Определяет, включены ли резервные копии.
backupPath — (по умолчанию = "{sitePathParent}{siteName}_snapshots") Где на сервере будут храниться резервные копии. Он также поддерживает переменные замены пути для "{sitePathParent}" и "{siteName}", которые определяются во время выполнения.
sitePathParent — физический путь к файлу родительского содержимого сайтов. Например, если приложение сайта находится в c:\inetpub\wwwroot\siteName, то sitePathParent будет иметь значение c:\inetpub\wwwroot\.
siteName — имя сайта.
Пример. Схема по умолчанию задает для этого пути значение "{sitePathParent}{имя_сайта}_snapshots", чтобы каждая резервная копия помещаться в одноуровневую папку содержимого сайта, а не внутри нее.
ПРЕДУПРЕЖДЕНИЕ: Убедитесь, что backupPath не размещается в пути к содержимому сайтов или резервные копии будут удалены при каждой публикации.
numberOfBackups — (по умолчанию — "4") — количество резервных копий на сайте, которые будут храниться на сервере. После создания максимального количества резервных копий самая старая резервная копия будет удалена.
continueSyncOnBackupFailure — (по умолчанию = "true") Позволяет пользователям либо завершить синхронизацию, либо продолжить синхронизацию в случае сбоя резервного копирования по какой-либо причине.
excludeedProviders - (по умолчанию = пустой набор) Список поставщиков веб-развертывания, которые всегда исключаются из резервной копии. Например, если резервные копии баз данных управляются отдельно в вашей среде, этот параметр используется для исключения резервных копий базы данных в рамках веб-развертывания резервных копий путем исключения dbFullSQLProvider Дополнительные сведения см. в разделе "Управление тем, что содержит резервная копия".
Примечание
Хотя веб-развертывание технически позволяет выполнять резервное копирование почти каждого поставщика, некоторые поставщики не могут быть восстановлены значимым образом из-за характера этих поставщиков. В основном к этой категории относятся все поставщики, которые являются поставщиками "только для набора", а не "синхронизации". Ниже приведен список встроенных поставщиков, которые рекомендуется добавить в параметр ExcludedProviders:
appHostAuthOverride
appPoolEnable32Bit
appPoolNetFx
appPoolPipeline
createApp
setAcl
DBSqlPackage (не устанавливается по умолчанию с веб-развертыванием, но отображается здесь, так как в настоящее время он не поддерживается функцией резервного копирования)
backupSettingsProvider — (по умолчанию: все параметры атрибутов имеют значение false) Предоставляет системным администраторам контроль над параметрами резервного копирования, которые могут быть заданы администратором веб-сайта. Вы можете разрешить администраторам веб-сайтов управлять любыми из указанных выше параметров "enabled", "numberOfBackups", "continueOnBackupFailure" и "excludedProviders" для своего сайта. Это можно сделать, присвоив свойствам canSetEnabled, canSetNumberOfBackups значение true, как указано в следующем примере.
Полные сведения об этих параметрах и допустимых значениях можно найти в разделе BackupManagerSchema %windir%\system32\inetsrv\config\schema\BackupManagerSchema.xml в системе конфигурации IIS.
Ниже приведен пример конфигурации, которую можно добавить в <system.webServer> (дополнительные сведения см. в полной схеме). Вам не нужно указывать все приведенные ниже параметры, так как все они имеют параметры по умолчанию, указанные в схеме, но они указаны здесь, чтобы показать в качестве примера.
Предположим, что у нас есть сайт с именем foo, который находится под c:\foo\wwwroot сервером. Приведенная выше конфигурация указывает, что веб-развертывание выполняет следующие действия:
Включите функцию резервного копированияСведите не более 2 резервных копий.
Храните каждую резервную копию в папке в папке c:\foo\foo\_siteBackups.
Сбой публикации, если операция резервного копирования по какой-либо причине завершается сбоем.
Исключите резервное копирование баз данных SQL с помощью поставщика dbFullSql.
Разрешить администраторам веб-сайтов использовать backupSettingsProvider для настройки параметров "enabled", "numberOfBackups", "continueOnBackupFailure" и "excludedProviders" для своего сайта.
Настройка параметров резервного копирования на сервере для определенных сайтов
Функция автоматического резервного копирования также позволяет задавать параметры для конкретного сайта, указывая каждый параметр резервного копирования с помощью тега <location> в файле applicationHost.config. Если параметр не указан в теге расположения, он будет унаследован от параметров сервера. Ниже приведен пример того, как могут выглядеть параметры резервного копирования сайтов:
Если вы хотите разрешить администраторам сайта задавать собственные параметры сайта, необходимо настроить атрибуты canSet*элемента BackupSettingsProvider в параметрах резервного копирования сервера (а не в параметрах резервного копирования сайта).
Вопросы безопасности для автоматического резервного копирования
При сохранении этих резервных копий на сервере необходимо убедиться, что каждый пользователь имеет доступ только к своему содержимому. Веб-развертывание по умолчанию (во время полной установки) настраивает правило делегирования BackupManager, чтобы убедиться, что он олицетворяется как пользователь, который публикует при создании резервных копий. Это означает, что учетная запись пользователя публикации также должна иметь права на запись файла в каталог резервного копирования.
Если вы не хотите использовать удостоверение конечных пользователей для создания резервных копий, можно просто удалить это правило делегирования, а веб-развертывание будет использовать удостоверение службы WMSVC для записи в каталог резервного копирования.
Примечание
Правила делегирования применяются только к пользователям без прав администратора, подключающимся через WMSvc. Для администраторов (подключение через агент веб-развертывания) используется собственное удостоверение.
Функция резервного копирования поставляется с 2 новыми правилами делегирования поставщика (BackupSettings и BackupManager), как показано ниже.
Настройка Site-Level параметров резервного копирования на сервере (для администраторов сайта или сервера)
Администраторы сервера могут делегировать некоторые функции администрирования резервного копирования администраторам сайта. Если это разрешено, администраторы сайта могут настроить режим резервного копирования для своих сайтов.
Примечание
msdeploy.exe находится в разделе %programfiles%\IIS\Microsoft Web Deploy V3
Список параметров резервного копирования сайта: Выполните операцию дампа, передав имя сайта поставщику backupSettings. Флаг -xml также отобразит список того, доступен ли параметр для записи.
Настройка параметров резервного копирования. Выполните операцию синхронизации при передаче имени сайта, а также всех параметров, которые вы хотите изменить.
Администратор сервера должен разрешить делегирование этих параметров, прежде чем вы сможете их изменить.
Управление поведением сбоя. Вы можете управлять поведением продолжения публикации в случае сбоя резервного копирования, изменив параметр резервного копирования continueSyncOnBackupFailure. Если параметру continueSyncOnBackupFailure присвоено значение false и резервное копирование завершается сбоем, публикация завершится ошибкой и содержимое сайта или базы данных не будет изменено.
Добавление поставщика в список поставщиков, исключаемых из резервной копии: Укажите разделенный точкой с запятой список поставщиков. Для добавления поставщиков в глобальный список можно использовать параметр addExcludedProviders.
Публикация на сервере Backup-Enabled (для веб-разработчиков)
Автоматическое создание резервной копии
Когда пользователь выполняет публикацию на сервере с поддержкой резервного копирования с помощью одного из поддерживаемых поставщиков (iisApp, appHostConfig, contentPath), резервная копия автоматически создается перед применением каких-либо данных, при условии, что резервная копия не будет пропущена. Со стороны конечного пользователя не требуется никаких конкретных действий.
Создание резервной копии вручную
Пользователь может вручную принудительно создать резервную копию с помощью поставщика BackupManager при условии, что резервные копии настроены и включены для сайта, на котором выполняется публикация. Существует два метода создания резервной копии вручную.
Указание пути к целевому сайту . Для этого потребуется простая резервная копия приложения iisApp для конечного сайта.
Пропуск резервного копирования во время публикации
Если клиент хочет предотвратить создание резервной копии, он может либо отключить резервные копии на сервере в качестве сохраняемого параметра с помощью поставщика backupSettings, либо отключить выполнение правила резервного копирования на сервере для каждой отдельной публикации. Ниже приведен пример отключения запуска правила резервного копирования во время публикации:
Управление резервными копиями (для веб-разработчиков и администраторов сайтов)
Поставщик BackupManager предоставляет клиентам возможность перечислять, восстанавливать и удалять резервные копии. Ниже приведены некоторые примеры того, как это делается.
Вывод списка резервных копий для сайта: Выполнение операции дампа для просмотра всех резервных копий сайта
Восстановите последнюю резервную копию сайта, который также содержит базу данных: Предполагается, что последняя резервная копия также содержит резервную копию базы данных. Параметр поставщика connectionString используется для подключения к базе данных, в которую выполняется восстановление, и необходим для восстановления любой резервной копии базы данных, если вы не применяете правило пропуска для пропуска восстановления базы данных.
Существует несколько сценариев, в которых веб-развертывание не будет автоматически создавать резервную копию, даже если она включена на сервере.
Клиент публикуется с использованием более ранней версии веб-развертывания, чем версия-кандидат версии 3.
На сервере не установлен по крайней мере версия-кандидат веб-развертывания версии 3.
В манифесте указано более 1 базы данных . Веб-развертывание поддерживает только создание резервной копии отдельной базы данных для каждой публикации.
Путь используемого поставщика не является относительным путем к сайту . Поставщик contentPath принимает физические пути к файлам, а также относительные пути к сайтам. Если указан физический путь, веб-развертывание не будет учитывать этот поставщик при инициации резервного копирования. Поставщик apphostConfig принимает пустой путь. Если указан пустой путь, то веб-развертывание вообще не будет создавать резервную копию.
Конфликтующие относительные пути в манифесте . Если в манифесте есть несколько поставщиков, которые имеют конфликтующие относительные пути сайта, веб-развертывание не будет выполнять резервное копирование. Например, если вы публикуете публикацию с несколькими поставщиками iisApp на разных сайтах ( один указывает на сайт "foo", а другой указывает на "панель" сайта), веб-развертывание не будет выполнять резервное копирование.
Другие известные проблемы
Установка веб-развертывания версии 2 нарушает правило делегирования BackupSettings . Если установить версию 2 после версии 3, правило делегирования BackupSettings больше не будет работать, если оно было настроено для запуска с пользователем WDeployConfigWriter по умолчанию. Чтобы обойти эту проблему, просто запустите сценарий AddDelegationRule.ps1 версии 3 (находится в разделе %programfiles%\IIS\Microsoft Web Deploy\Scripts) из PowerShell.
Узнайте больше об Azure Backup, прежде чем приступить к реализации хранилищ восстановления и политик Azure Backup. Узнайте, как реализовать восстановление виртуальных машин Windows IaaS, выполнить резервное копирование и восстановление локальных рабочих нагрузок и управлять резервными копиями виртуальных машин Azure.
В этом разделе описывается, как опубликовать пакеты веб-развертывания на удаленном сервере с помощью средства веб-развертывания службы IIS (IIS) (Web...
Веб-развертывание — это средство для упрощения миграции, управления и развертывания веб-приложений, сайтов и серверов. Его можно использовать для упаковки веб-сайта, а...
Обзор веб-развертывания версии 2. Веб-развертывание — это средство для упрощения миграции, администрирования и развертывания веб-приложений, сайтов и серверов. Это может быть...
В этом пошаговом руководстве мы рассмотрим шаги по установке и настройке веб-развертывания для IIS 8.0 и более поздних версий для развертываний администратора или неадминистратора.
Веб-развертывание — это расширяемое средство клиент-сервер для синхронизации содержимого и конфигурации со службами IIS. Веб-развертывание используется в основном в двух сценариях: разработчики используют его...
В этом руководстве приведены основные сведения о действиях по настройке обработчика веб-развертывания на размещенном сервере и тестировании того, что пользователь может развертывать приложения...