使用 MSDeploy 为包设置应用程序池
Posted
技术标签:
【中文标题】使用 MSDeploy 为包设置应用程序池【英文标题】:Set Application Pool for package using MSDeploy 【发布时间】:2011-04-30 17:46:34 【问题描述】:我正在使用 MSDeploy 部署网站,因此使用类似于以下代码的内容。
"%ProgramFiles%\IIS\Microsoft Web Deploy\msdeploy.exe"
-verb:sync
-source:package=WebAppServer.zip
-dest:Auto
-setParamFile="was_params.xml"
-verbose
> webappserversync.log
有没有设置应用程序池?我想从命令行执行此操作,而不是在清单或类似内容中设置它。
应该没关系,但这是在 IIS7 中。
【问题讨论】:
【参考方案1】:当你生成你的包时,你需要在 parameters.xml 文件中有一个条目来设置应用程序池。部署时,您可以在 setParameters.xml 文件中包含该值的值,或者在命令行中使用 -setParam。
这是我用来抓取网站的命令,它生成了正确的 parameters.xml 文件...
msdeploy.exe
-verb:sync -source:appHostConfig="Default Web Site"
-enableLink:AppPoolExtension
-dest:package=site.zip
-declareParam:name="Application Pool",
defaultValue="Default Web Site",
description="Application pool for this site",
kind=DeploymentObjectAttribute,
scope=appHostConfig,
match="application/@applicationPool"
要从命令行安装这个站点,这个...
msdeploy.exe
-verb:sync
-dest:appHostConfig="MagicSite"
-enableLink:AppPoolExtension
-source:package=site.zip
-setParam:"Application Pool"="MagicPool"
在parameters.xml 文件中挖掘以查看必要的条目。如果您愿意,-setParam
条目可以存在于您的 params.xml
文件中。
【讨论】:
如果我能让它工作,我就炸了。编写应用程序池的脚本就好了,但是在我调用 msdeploy 时设置该参数似乎没有任何区别。 我在尝试此操作时似乎收到以下错误:Error: Source (sitemanifest) and destination (appHostConfig) are not compatible for the given operation.
我知道了Error: Using a 64-bit source and a 32-bit destination with provider appHostConfig is not supported.
【参考方案2】:
看看这个答案:
Set application pool with MSDeploy and TFS 2010
基本上,您使用 adsutil 脚本创建一个批处理文件来设置应用程序池,然后调用 MSDeploy 在目标计算机上运行该批处理文件。
【讨论】:
...创建应用程序池。但是如何为网站定位呢?以上是关于使用 MSDeploy 为包设置应用程序池的主要内容,如果未能解决你的问题,请参考以下文章
在Visual Studio 2012中使用MSBuild PublishProfile时,MSDeploy跳过规则