IIS7+相关解答....
好的 - 这就是我最终所做的。或多或少,跟随帖子西蒙·韦弗 https://stackoverflow.com/users/16940/simon-weaver在这个线程/问题中。
但是当涉及到 MSBuild 设置时..这里大多数人都使用以下设置:/p:MSDeployPublishMethod=RemoteAgent
这是不对对于 IIS7。使用此设置意味着 TFS 尝试连接到以下 URL:https://your-server-name/MSDEPLOYAGENTSERVICE
但要访问该 url,进行身份验证的用户必须是管理员。这是破碎的。 (并且您需要勾选“管理员覆盖规则”)。我认为这个网址适用于 IIS6。
这是当您尝试使用 RemoteAgent 连接时的标准错误消息:-
标准 401 Frak Off u 吮吸 RemoteAgent,错误
C:\程序文件
(x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets
(3588):Web 部署任务
失败。(远程代理(URLhttp://您的网络服务器/MSDEPLOYAGENTSERVICE http://your-web-server/MSDEPLOYAGENTSERVICE)
无法联系到。确保
远程代理服务已安装并且
在目标计算机上启动。)
确保站点名称、用户名和
密码正确。如果问题是
未解决,请联系您的
本地或服务器管理员。错误
详细信息:远程代理(URLhttp://您的网络服务器/MSDEPLOYAGENTSERVICE http://your-web-server/MSDEPLOYAGENTSERVICE)
无法联系到。确保
远程代理服务已安装并且
在目标计算机上启动。一个
收到不支持的答复。这
响应标头“MSDeploy.Response”
是“V1”,但预期是“v1”。这
远程服务器返回错误:(401)
未经授权。
所以..你需要改变你的MSDeployPublishMethod
对此:
/p:MSDeployPublishMethod=WMSVC
The WMSVC
代表Windows管理器服务。它基本上是远程代理的更新包装,但现在允许我们正确提供用户名和密码..其中用户不必是管理员! (高兴!)所以现在您可以正确设置您想要访问的用户..每个网站..
现在它还尝试访问 URL:https://your-web-server:8172/MsDeploy.axd
Publish窗户可以!(天哪 -> 一分钱掉落!!繁荣!)
这是我的最终 MSBuild 设置:
/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish
/p:MSDeployPublishMethod=WMSVC
/p:MsDeployServiceUrl=your-server-name
/p:DeployIISAppPath=name-of-the-website-in-iis7
/p:username=AppianMedia\some-domain-user
/p:password=JonSkeet<3<3<3
/p:AllowUntrustedCertificate=True
注意到用户名中有域名吗?你需要那个,就在那里。另外,在我的图片中,我已允许我们的域用户访问该网站进行管理。因此,我添加的新用户帐户 (TFSBuildService) 具有以下成员资格Domain Users
团体……这就是一切的运作方式。
现在 - 如果你读完了所有这些,请拥有一个 lolcat(因为它们太 2007 年了)......