1

更新:

回答最近的评论...我找到了以下信息,但没有用。

  1. 转到控制面板中的程序和功能。
  2. 找到“Microsoft Web Deploy 3.0 安装程序”
  3. 右键单击该程序,然后单击“更改”。
  4. 在三个选项中,从“更改、修复或删除安装菜单”中选择“更改”。
  5. 在 IIS 部署处理程序下,有一个通常未选中的选项“为非管理员部署配置”。选中此选项并单击下一步。
  6. 完成安装。

这会在管理委派 UI 下设置其他选项,这些选项应允许非管理员帐户部署到您的应用程序。它适用于一台服务器,但不适用于另一台服务器。我没有时间试图让它工作。我的另一个解决方案是这样做:

  • 构建由专门的团队管理。我们限制了 TFS 中所有项目的“查看/编辑构建定义”。
  • 我们让构建帐户保留为管理员。
  • 我们将密码保留在定义中。

两种解决方案都有效,但我更喜欢前者。有一天我会找出两台服务器之间的区别并发布另一个更新。

参考:http ://workinghardinit.wordpress.com/2011/07/18/wdeployconfigwriter-account-issues-trouble-shooting-web-deploy-2-0-with-lessons-learned/


进行三天的故障排除 - 我被正式难住了。

TFS 构建日志中的错误详细信息

MS部署发布:

开始 Web 部署 将应用程序/包发布到https://XX.XX.XX.XX:8172/msdeploy.axd?site=Default%20Web%20Site ...

从 source:package(D:\Builds\Sources\ProjectA.zip) 启动 Web 部署任务到 Destination:auto()。

更新 setAcl(默认网站/测试)。

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3847,5): 错误:Web 部署任务失败。((2/19/2013 9: 58:23 AM)在远程计算机上处​​理请求时发生错误。)[D:\Builds\Sources\ProjectA.csproj]

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3847,5):错误:[D:\Builds\Sources\ProjectA.csproj]

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3847,5): error : (2/19/2013 9:58:23 AM) An在远程计算机上处​​理请求时发生错误。[D:\Builds\Sources\ProjectA.csproj]

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3847,5): 错误:服务器在处理请求时遇到问题。有关详细信息,请联系服务器管理员。[D:\Builds\Sources\ProjectAcsproj]

发布部署失败。

完成构建项目“D:\Builds\Sources\ProjectA.csproj”(默认目标)——失败。完成构建项目“D:\Builds\Sources\ProjectWeb.csproj”(默认目标)——失败。

构建失败。

我有三个环境。开发、质量保证和生产

开发和 QA 有一个非生产构建帐户。生产有一个生产构建帐户。

部署在其中一台生产服务器以及所有开发和 QA 服务器上运行。但不是另一个。这些是托管不同 Web 应用程序的独立服务器。它不是负载平衡的,也不是网络场的一部分。

我相信这是一个权限问题,但这个问题只存在于其中一台服务器上。为了让这个部署工作,我必须以管理员身份在盒子上设置生产 tfs 构建帐户。或将完全控制权授予Web 应用程序文件夹上的每个人。两者都不是优选的。更不用说其他服务器都不是这样设置的。

在部署过程中,我确实注意到在部署的第一步中 ACL 权限是错误的。Web 应用程序文件夹授予构建帐户特殊权限。在其他环境中,该权限永远不会被设置。我不知道为什么会这样。也许这是工作流程中的一个直接步骤,但我不确定。

所有功能委托选项均根据此网站设置。我知道它们是正确的,因为我现在已经实施了好几次了。链接中未指定的是允许在功能规则上构建帐户。所有这些都从应用程序设置到顶级站点。

如果我将 TFS 中的 QA 构建切换为部署到生产环境,它会因同样的问题而失败。所以它不是构建定义。如果我授予管理员或所有人权限,那么它就可以工作,所以它不是项目或配置。

MSBuild 参数

/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=True /p:MSDeployPublishMethod=WMSVC
/p:MSDeployServiceUrl=https://XX.XX.XX.XX:8172/msdeploy.axd 
/p:DeployIisAppPath="Default Web Site/Test"
/p:UserName=DOMAIN\ProdBuildAccount /p:Password=*******
/p:AllowUntrustedCertificate=True 

在排队成功构建后,将从团队资源管理器开始部署。

此外,如果我使用 package.zip 并将其手动导入 IIS,那么 ACL 是正确的并且可以完美部署。

4

0 回答 0