【问题标题】:What is expected for DeployIisAppPath setting on MSBuild argument?MSBuild 参数上的 DeployIisAppPath 设置有什么预期?
【发布时间】:2014-04-09 14:53:57
【问题描述】:
SERVERNAME(myDomain\Username)
   Application Pools
   Sites
      DEV Site1
      DEV Site2
      dev Site 3
         bin
         Content
         ...
         Views
      etc ...

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

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

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

Microsoft's instructions 没用。我以为我应该只使用 IIS 站点名称,但这并不成功。此参数的预期值是多少?我需要应用程序池名称吗?我可以针对 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"

【问题讨论】:

  • 您是否在使用 MSDeployPublish(例如 /p:DeployTarget=MsDeployPublish)?
  • 另外,您是否也在服务 url 中指定站点位置?例如'/p:MsDeployServiceUrl="SERVER:8172/MsDeploy.axd?Site=direct"'
  • 感谢@CodeWarrior,我更新了我的问题。我应该包含完整的上下文。

标签: iis tfs msbuild tfsbuild webdeploy


【解决方案1】:

您的服务器在您的域内,所以我将使用我为我们的内部服务器提供的解决方案。我必须为我们的 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(安装在网络服务器上)允许 TFS 构建过程访问部署时需要访问的服务器部分。我还没有尝试过 MSDeployAgentService,所以我不确定那个。在我的例子中,我没有在部署时创建一个包(我似乎记得当我这样做时它返回了一个错误,虽然我不记得它是什么)。

此外,最后三个参数对于 TFS 构建服务帐户登录到 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

【讨论】:

  • 您的网站名称中有空格吗?您的示例是“直接”的,所以我假设这是站点的名称并在 2 个参数中重复。如果有空格,我假设您会在站点查询字符串值中使用 %20。
  • 在 URL 中,我希望是 %20。在 DeployIisAppPath 中,我只希望有一个空格,因为它在引号中。
  • 能否请您给我看一下 Build 中的日志语句,告诉您 MSDeploy 成功了?我的构建没有失败,但我没有看到服务器代码更改。我不知道在 MSBuild 日志中查找什么才能知道 MSDeploy 已被调用并且正在工作。
  • 好的。添加。中间缺少大约 1500 行,它正在更新服务器上的文件,每行一行。我留下了第一行和最后一行。
  • 哦!非常有帮助。所以我没有工作,因为我在我的日志中没有看到这些。
猜你喜欢
  • 1970-01-01
  • 2014-08-10
  • 1970-01-01
  • 2012-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-26
  • 2021-01-19
相关资源
最近更新 更多