You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft Web Deploy备份失败且无法恢复如何解决?

问题描述

我最近开始使用Microsoft Web Deploy,基础配置下备份功能可以正常运行,现在我参考社区回答的评论内容,尝试在项目的.pubxml文件中添加文件夹排除规则。

我的部署配置如下:

cd "\Program Files\IIS\Microsoft Web Deploy V3\scripts\"
. .\BackupScripts.ps1
Reset-BackupSettings
TurnOn-Backups -On $true
Configure-Backups -Enabled $true
Configure-Backups -ContinueSyncOnBackupFailure $false
Configure-Backups -NumberOfBackups 5
Configure-Backups -BackupPath "D:\UAT\AppBackups\{siteName}_snapshots"
Configure-BackupSettingsProvider -CanAddExcludedProviders $true
Get-BackupSettings

以上配置运行正常,直到我向发布配置文件中粘贴如下代码片段:

<Target Name="AddCustomSkipRules"> 
  <ItemGroup>
    <MsDeploySkipRules Include="SkipAppDataFolder">
      <SkipAction></SkipAction>
      <ObjectName>dirPath</ObjectName>
      <AbsolutePath>$(_DestinationContentPath)\\App_Data$</AbsolutePath>
      <Apply>Destination</Apply>
      <XPath></XPath>
    </MsDeploySkipRules>
  </ItemGroup>
</Target>

添加该代码后发布尝试失败,且功能陷入卡顿状态,后续我删除该片段重新发布仍然报错,追踪到的错误信息如下:

<trace eventLevel="Error" message="BACKUP_FAILED - Skipping backup because it failed due to an unknown reason. For more information, contact your server administrator."
AspNetModuleDiagErrorEvent  
Uri /msdeploy.axd  
  
User: username  
Client IP: 10.148.69.225  
Content-Type: application/msdeploy  
Version: 9.0.0.0  
MSDeploy.VersionMin: 7.1.600.0  
MSDeploy.VersionMax: 9.0.3802.0  
MSDeploy.Method: Sync  
MSDeploy.RequestId: fa27c81c-12aa-47f3-ac37-7ea94caa14a4  
MSDeploy.RequestCulture: en-US  
MSDeploy.RequestUICulture: en-US  
ServerVersion: 9.0.1973.0  
Skip: objectName="^configProtectedData$"  
Provider: auto, Path: A tracing deployment agent exception occurred that was propagated to the client.  
Request ID   'fa27c81c-12aa-47f3-ac37-7ea94caa14a4'.  
Request Timestamp: '11/10/2021 5:08:45 PM'.  
Error Details:  
    System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.  
    at Microsoft.Web.Deployment.BackupManager.HandleExceptionForBackupFailure(DeploymentBaseContext baseContext, BackupSettings settings, Exception ex, Boolean suppressLogging)  
    at Microsoft.Web.Deployment.BackupRuleHandler.PreSync(DeploymentSyncContext syncContext)  
    at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject)  
    at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable``1 syncPassId, String syncSessionId)  
    at Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable`1 passId, String user, String siteName)  
    at Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAgentAsyncData asyncData)  
    at Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData)

我已经尝试重启IIS和Web Deploy服务,均没有效果,且我不希望重启整台服务器,请问如何才能让备份服务恢复正常?


解决方案

该报错是Microsoft Web Deploy备份模块的已知缺陷:当服务端开启CanAddExcludedProviders配置后,客户端传入的空SkipAction/XPath字段会触发备份模块的字符串格式化参数不匹配错误,即便你后续删除了pubxml中的规则,服务端缓存的异常配置仍然会生效,无需重启服务器,按以下步骤操作即可恢复:

  1. 以管理员身份打开服务器端的PowerShell,进入Web Deploy脚本目录:
cd "\Program Files\IIS\Microsoft Web Deploy V3\scripts\"
. .\BackupScripts.ps1
  1. 彻底重置备份配置,根据你的配置范围二选一执行:
# 如果是全局备份配置,执行这行
Reset-BackupSettings -Global
# 如果是针对单个站点的配置,替换为你的站点名称后执行这行
Reset-BackupSettings -SiteName "你的站点名称"
  1. 重新配置正常的备份参数,不需要自定义排除规则的话建议关闭CanAddExcludedProviders避免再次触发该bug:
TurnOn-Backups -On $true
Configure-Backups -Enabled $true
Configure-Backups -ContinueSyncOnBackupFailure $false
Configure-Backups -NumberOfBackups 5
Configure-Backups -BackupPath "D:\UAT\AppBackups\{siteName}_snapshots"
# 无需自定义排除规则就删除下面这行,或者将值改为$false
Configure-BackupSettingsProvider -CanAddExcludedProviders $false
  1. 验证配置生效:
Get-BackupSettings
  1. (可选)删除站点根目录下App_Data\MSDeploy文件夹内的所有缓存文件。

操作完成后重新发布即可恢复备份功能。如果确实需要配置文件夹排除规则,建议在服务端直接配置全局跳过规则,不要通过客户端pubxml文件传入规则。


内容的提问来源于stack exchange,提问作者Wildcat Matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:06:08