我已经使用TeamCity和MSBuild建立了持续集成构建。我正在使用MSBuild扩展包,主要用于其IIS7AppPool任务。我的目标是在构建脚本执行部署步骤之前停止IIS应用程序池,然后启动应用程序池。 IIS应用程序池与构建代理程序位于不同的服务器上。
我使用以下MS Build代码来阻止IIS:
<MSBuild.ExtensionPack.Web.Iis7AppPool TaskAction="Stop" MachineName="$(DeploymentServerName)" Name="$(WebAppPoolName)" Username="$(DeploymentServerUsername)" UserPassword="$(DeploymentServerUserPassword)" />
我在网络服务器上设置了一个本地管理员用户帐户,并使用上面的用户名和密码作为$(DeploymentServerUsername)和$(DeploymentServerPassword)。
我收到的错误是:
[MSBuild.ExtensionPack.Web.Iis7AppPool] E:\ TeamCity的\ BuildAgent \工作\ 1a1dc058c29f0f12 \ BuildAndDeployment \ Build_DevCI.proj(153, 5):UnauthorizedAccessException:检索COM类工厂 具有CLSID的远程组件{2B72133B-3F5B-4602-8952-803546CE3344} 来自机器DEPLOYMENTSERVERMACHINENAME由于以下原因而失败 错误:80070005 DEPLOYMENTSERVERMACHINENAME。
我已经让我们的网络人员取下两台机器之间的任何防火墙,但我仍然遇到同样的错误。
任何人都可以看到我的语法有什么问题或提供有关如何使其工作的任何建议吗?
我可以让我的本地机器上的IIS应用程序池停止运行,所以我的语法应该是正确的。
我看过这篇文章,但我认为这不是同一个问题: