Web部署setAcl失败

时间:2013-02-19 18:04:42

标签: build tfs permissions acl web-deployment

更新:

要回答最近的评论......我发现了以下信息,但它没有用。

  1. 转到控制台中的“程序和功能”。
  2. 找到“Microsoft Web Deploy 3.0安装程序”
  3. 右键单击该程序,然后单击“更改”。
  4. 在三个选项中,从“更改,修复或删除安装菜单”中选择“更改”。
  5. 在IIS部署处理程序下,有一个通常未选中的选项“为非管理员部署配置”。选中此选项并单击“下一步”。
  6. 完成安装。
  7. 这将在管理委派UI下设置其他选项,以允许非管理员帐户部署到您的应用程序。它适用于一台服务器,但不适用于另一台我没时间试图让这个工作。我的另一个解决方案就是这样做:

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

    两种解决方案都有效,但我更喜欢前者。有一天,我会弄清楚两台服务器之间的差异并发布另一次更新。

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


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

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

      

    MSDeployPublish:

         

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

         

    从源:包(D:\ Builds \ Sources \ ProjectA.zip)启动Web部署任务到目标: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):错误:(2/19/2013 9:58:23 AM)在远程计算机上处​​理请求时发生错误。 [d:\构建\源头\ ProjectA.csproj]

         

    C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets(3847,5):错误:服务器遇到处理请求的问题。请联系服务器管理员以获取更多信息[d:\构建\源头\ ProjectAcsproj]

         

    发布无法部署。

         

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

         

    构建失败。

    我有三个环境。发展,质量保证和生产

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

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

    我认为这是一个权限问题,但此问题仅存在于其中一个服务器上。要使此部署正常运行,我必须以管理员身份在框中设置生产 tfs构建帐户。或者对Web应用程序文件夹中的每个人进行全面控制。两者都不是首选。更不用说其他服务器都没有这样设置。

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

    所有功能委派选项均根据to this website进行设置。我知道他们是对的,因为我现在已经多次实施了。链接中未指定的内容是允许构建帐户使用功能规则。所有这些都是从应用程序设置到顶级站点。

    如果我在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是正确的,并且部署完美。

0 个答案:

没有答案