iis - 如何进行 IIS 站点/内容备份?

标签 iis backup

我想学习 ASP.NET,为此,我阅读了一些管理 IIS Web 服务器的基本教程。我想知道如何对我的网站(配置和内容)进行完整备份。我在 Hyper-V Windows Server 2012R2 Core 上运行 IIS 服务器并通过 Powershell Remote 进行管理。

在互联网上,我发现了一篇有关一些基本内容的文章( see here )

这篇文章说,我可以对我的 IIS 配置和内容进行完整备份

Backup-WebConfiguration -Name "My Backup"

并恢复它

Restore-WebConfiguration -Name "My Backup"

问题是:看起来它实际上只从配置中进行备份,而不是从内容中进行备份。例如:它从 IIS:\Sites 恢复网站,但不恢复物理内容,例如其中的应用程序文件夹和 default.htm。如果我删除默认的 .htm 和文件夹,使用 Restore-WebConfiguration,它仍然不会恢复它 - 只能恢复 WebConfiguration 本身。

根据我猜测的Articel,它也会恢复内容...... 我做错了什么吗?如果没有 MS Web Deploy 3.0 的脚本,我怎样才能“从头开始”做我想做的事?

感谢您的帮助和最诚挚的问候,

最佳答案

Backup-WebConfiguration 仅备份 applicationHost.config 文件中详细说明的配置项。它不处理实际内容,只处理 IIS 如何处理该内容。

要做到这两件事很简单,这里有一个快速函数,可以创建 zip 文件(只需输入 inetpub 目录的路径)并备份配置。 (这需要 Powershell v3 或更高版本)备份将自动设置创建日期(您可以使用 Get-WebConfigurationBackup 查看备份列表,因此继续将日期和时间添加到 zip 文件中,如下所示好吧,这样他们就可以匹配起来。

如果您在同一天进行多个备份,则需要调整压缩文件的文件名,因为它的文件名中只有日期。

function Backup-WebServer
{
    [CmdletBinding()]
    Param
    (
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)]
        [ValidateNotNullOrEmpty()]            
        [ValidateScript({Test-Path $_})]
        [string]$Source,

        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)]
        [ValidateNotNullOrEmpty()]
        [ValidateScript({Test-Path $_})]
        [string]$Destination,

        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)]
        [ValidateNotNullOrEmpty()]
        [string]$ConfigurationName
    )

    Add-Type -Assembly System.IO.Compression.FileSystem
    Import-Module WebAdministration
    $compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal

    $date = $(Get-Date -Format d).Replace('/','-')
    $fileName = "Inetpub-Backup $date.zip"

    $inetpubBackup = Join-Path -Path $Destination -ChildPath $fileName

[System.IO.Compression.ZipFile]::CreateFromDirectory($Source,$inetpubBackup,$compressionLevel,$false)

    Backup-WebConfiguration -Name $ConfigurationName

}

关于iis - 如何进行 IIS 站点/内容备份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29879368/

相关文章:

asp.net - Powershell:更新 IIS web.config

c# - Selenium :意外错误。 System.Net.WebException:无法连接到远程服务器

asp.net - Web.config 身份验证错误

Git 和 Dropbox - 本地存储库

PostgreSQL 错误 : geometry contains non-closed rings

svn - 您建议我的网站使用什么版本控制系统?

authentication - IIS/冷融合 : authentication request on anonymous content

c# - 将库中的 WebApi Controller 托管到 IIS

c# - 部署在本地sql server management studio的azure数据库的数据库备份