对MSBuild参数的DeployIisAppPath设置有什么期望?

时间:2014-03-06 18:58:30

标签: iis tfs msbuild tfsbuild webdeploy

SERVERNAME(myDomain\Username)
   Application Pools
   Sites
      DEV Site1
      DEV Site2
      dev Site 3
         bin
         Content
         ...
         Views
      etc ...

这是我的DEV Web服务器的基本布局。我们的DEV Web服务器上运行着许多站点。我正在尝试使用TFS 2013 Build将我的网站发布到DEV服务器,跟随Vishal JoshiMicrosoft和其他人的文章。

我的错误是“ERROR_SITE_DOES_NOT_EXIST”。基本修复对我没有帮助。

在我的示例中,我正在使用/p:DeployIisAppPath="dev Site 3"。该站点下没有定义任何应用程序。

Microsoft's instructions没用。我以为我应该只使用IIS站点名称,但这并不能证明是成功的。此参数的预期值是多少?我有人需要App Pool名称吗?是否有一个命令可以针对IIS发出以导出所有可用的AppPath列表?一旦我在DEV服务器上解决这个问题,我就必须对STG服务器做同样的事情。

[更新1] 添加完整的MSBuild参数

/p:DeployOnBuild=True 
/p:DeployTarget=MsDeployPublish 
/p:CreatePackageOnPublish=True 
/p:MSDeployPublishMethod=InProc 
/p:MSDeployServiceUrl=http://SERVER:PORT/MsDeployAgentService
/p:DeployIisAppPath="dev Site 3"

1 个答案:

答案 0 :(得分:7)

您的服务器位于您的域内,因此我将使用我的内部服务器解决方案。我不得不为我们的DMZed服务器提出不同的东西。

MSBuild参数

/p:DeployOnBuild=True 
/p:DeployTarget=MsDeployPublish 
/p:CreatePackageOnPublish=False 
/p:MSDeployPublishMethod=WMSvc 
/p:MsDeployServiceUrl="https://SERVER:8172/MsDeploy.axd?Site=direct" 
/p:DeployIisAppPath="direct" 
/p:AllowUntrustedCertificate=True 
/p:AuthType=NTLM 
/p:UserName=

此解决方案使用WMSvc(安装在Web服务器上)允许TFS构建过程访问部署时所需的服务器部分。我没有尝试过MSDeployAgentService,所以我不确定那个。在我的情况下,我没有在部署时创建一个包(我似乎记得当我这样做时它返回了一个错误,虽然我不记得它是什么)。

此外,最后三个参数对于TFS Build Service帐户登录VMSvc并执行其操作是必要的。将UserName留空会导致它以正在运行的帐户登录(不需要提供密码,是的!)。

构建日志

以下是成功部署时构建日志的示例输出。

   MSDeployPublish:
     Start Web Deploy Publish the Application/package to https://SERVER:8172/MsDeploy.axd?Site=direct ...
     Starting Web deployment task from source: manifest(C:\Builds\1\Direct\Continuous Integration (SERVER)\Binaries\_PublishedWebsites\WEBPROJECTNAME_Package\Archive.SourceManifest.xml) to Destination: auto().
     Adding ACL's for path (direct)
     Adding ACL's for path (direct)
     Updating file (direct\bin\Content\images\buttonBkgHover.png).
          ... Removed for brevity => This section is all 'Updating file (PATH).'
     Updating file (direct\Web.config).
     Adding ACL's for path (direct)
     Adding ACL's for path (direct)
     Successfully executed Web deployment task.
     Publish is successfully deployed.
   PipelineDeployPhase:
     Publish Pipeline Deploy Phase