【问题标题】:Web deploy error - "Child object 'environmentVariables' cannot be added to object 'add'. The 'add' provider may not support this deployment."Web 部署错误 - “子对象 'environmentVariables' 无法添加到对象 'add'。'add' 提供程序可能不支持此部署。”
【发布时间】:2015-06-26 22:03:07
【问题描述】:

我为托管在 ASP.NET 4.5 Web 应用程序中的 WCF 服务创建了一个 Web 部署包(一个 ZIP 文件)。当我尝试部署包时,出现以下错误:

Child object 'environmentVariables' cannot be added to object 'add'.
The 'add' provider may not support this deployment.

堆栈跟踪是:

Microsoft.Web.Deployment.DeploymentException: Child object 'environmentVariables' cannot be added to object 'add'. The 'add' provider may not support this deployment.
   at Microsoft.Web.Deployment.DeploymentObject.AddChild(DeploymentObject source, Int32 position, DeploymentSyncContext syncContext)
   at Microsoft.Web.Deployment.DeploymentSyncContext.HandleAddChild(DeploymentObject destParent, DeploymentObject sourceObject, Int32 position)
   at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
   at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest, DeploymentObject source)
   at Microsoft.Web.Deployment.DeploymentSyncContext.HandleAddChild(DeploymentObject destParent, DeploymentObject sourceObject, Int32 position)
   at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
   at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest, DeploymentObject source)
   at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
   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.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
   at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentWellKnownProvider provider, String path, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
   at Microsoft.Web.Deployment.UI.InstallProgressWizardPage.OnWorkerDoWork(Object sender, DoWorkEventArgs e)
   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

我还没有弄清楚如何解决这个问题,但我注意到部署包 ZIP 文件中的 archive.xml 有一个 <environmentVariables> 元素嵌套在 <add> 元素内,该元素嵌套在 @987654325 内@元素。

源 IIS 站点位于 IIS Express(版本 10,因为我还安装了 Visual Studio 2015 RC)。目标 IIS 版本是 7.5 (Windows Server 2008 R2)。

Web 部署包是在 Windows 7 上运行的 Visual Studio 2013 中创建的。在 Programs and Features 中安装的 WebDeploy 版本是 3.6 (3.1238.1953)。

有谁知道如何解决或解决这个问题?

【问题讨论】:

  • 我发现如果我手动编辑部署包内的archive.xml文档以删除<environmentVariables>元素,部署就可以工作了。

标签: iis visual-studio-2013 iis-express visual-studio-2015 webdeploy


【解决方案1】:

试试这个:-skip:objectname=environmentVariables

例子:

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:package='' -verb:sync -enableLink:AppPoolExtension -disableLink:ContentExtension -skip:objectname=binding -skip:objectname=environmentVariables -skip:objectname= virtualDirectory -skip:objectname=virtualDirectoryDe​​faults

【讨论】:

  • 使用Visual Studio“发布网络”向导创建包时如何做到这一点?
  • 首先使用 Visual Studio 发布 Web 部署包。然后打开并编辑已发布的 .cmd 文件,在其中插入 -skip:objectname=environmentVariables,如上例所示。
猜你喜欢
  • 2014-10-01
  • 1970-01-01
  • 2015-03-02
  • 2021-10-07
  • 1970-01-01
  • 1970-01-01
  • 2021-03-17
  • 1970-01-01
  • 2019-04-20
相关资源
最近更新 更多