繁体   English   中英

使用MSDeploy和TFS 2010设置应用程序池

[英]Set application pool with MSDeploy and TFS 2010

我正在尝试使用MSDeploy部署网站,并使用其中一些进行团队建设...

/p:DeployOnBuild
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=True
/p:MSDeployPublishMethod=InProc
/p:MSDeployServiceURL=localhost
/p:DeployIISAppPath="Default Web Site"

是否可以在自定义应用程序池中设置此网站?

如果使用的是IIS 7,则可以使用appPoolProvider将应用程序池同步到远程服务器。 看到:

http://technet.microsoft.com/zh-CN/library/dd569070(WS.10).aspx

http://blog.torresdal.net/2010/08/16/NoClickWebDeploymentPart2WebDeployAkaMsdeploy.aspx

但是,我无法真正使它正常工作,并且如果您使用的是IIS 6,则还是无法正常工作。 但是,您可以做的是利用MSDeploy在远程服务器上运行几个命令来设置应用程序池(并在网站上注册.NET版本)。

首先,创建一个包含类似于以下内容的批处理文件:

cscript //nologo C:\Inetpub\AdminScripts\adsutil.vbs 
  SET w3svc/<IIS number>/Root/<virtual directory>/AppPoolid "<app pool name>"

因此,如果IIS编号为1,则您的虚拟目录为“ MyDirectory”,而应用程序池名为“ .NET4.0”,则命令为。

cscript //nologo C:\Inetpub\AdminScripts\adsutil.vbs 
  SET w3svc/1/Root/MyDirectory/AppPoolid ".NET4.0"

然后,您可以运行MSDeploy,将此批处理文件作为参数传递并在远程计算机上运行:

MSDeploy 
  -verb:sync 
  -source:runCommand="<path to batch file>",waitinterval=5000 
  -dest:auto,computername=<computer name>

其中<path to batch file>是您刚刚在上面创建的批处理文件的完整路径,并且是您要对其运行此计算机的计算机。 这是描述runCommand参数的链接: http : runCommand .aspx

我确定您可以将其设置为TFS中的构建步骤。 我们制作了一个.NET实用程序,作为我们部署过程的一部分,该实用程序会创建这些批处理文件并运行MSDeploy命令。

您也可以用这种相同的方法来做其他可能对您有用的事情:
注册IIS版本:

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe 
  -s w3svc/1/root/MyDirectory  

创建一个应用程序池:

CSCRIPT //nologo %dir%\adsutil.vbs 
  CREATE w3svc/AppPools/AppPoolName IISApplicationPool  

感谢http://justsamson.com/2010/06/14/create-virtual-directory-in-iis-6-0-via-command-line/为命令行脚本提供了各种功能。

技巧的一部分是使用/p:IncludeAppPool=true 这将更改部署脚本以启用AppPoolExtension。 但是我还没有想出如何最好地实际设置应用程序池。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM