Web部署错误 - "无法将子对象 'environmentVariables' 添加到对象 'add'。 'add'提供程序可能不支持此部署。"

3

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

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有一个<appPoolConfig>元素,里面嵌套了一个<add>元素和<environmentVariables>元素。
源IIS站点在IIS Express中(版本为10,因为我也安装了Visual Studio 2015 RC)。目标IIS版本为7.5(Windows Server 2008 R2)。
Web部署包是在运行于Windows 7的Visual Studio 2013中创建的。程序和功能中安装的WebDeploy版本为3.6(3.1238.1953)。
有人知道如何解决或解决这个问题吗?

我发现,如果我手动编辑部署包内的archive.xml文档,将<environmentVariables>元素删除,那么部署就可以正常工作。 - David Johnston
1个回答

3
尝试这个:-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 = virtualDirectoryDefaults


1
在使用Visual Studio“发布Web”向导创建包时,如何完成此操作? - yarg
首先使用Visual Studio发布Web Deploy包。然后打开并编辑已发布的.cmd文件,在其中插入-skip:objectname=environmentVariables,就像上面的示例一样。 - Tegge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接