Tfs 尝试使用Web部署时拒绝访问
我一直在跟踪,遇到了一些错误 我有两台服务器,一台是Windows Server 2008 R2,另一台是Windows Server 2012。在这两台机器上,我都安装了Tfs 尝试使用Web部署时拒绝访问,tfs,msbuild,web-deployment,webdeploy,Tfs,Msbuild,Web Deployment,Webdeploy,我一直在跟踪,遇到了一些错误 我有两台服务器,一台是Windows Server 2008 R2,另一台是Windows Server 2012。在这两台机器上,我都安装了webdeploy3,并且服务webdeploymentagent服务正在这两台机器上运行。我在我的域中拥有该服务帐户,并将这两台计算机上的帐户添加到Administrators组。我还将此帐户用于构建和测试控制器和代理 2008服务器是构建服务器,我想在2012服务器上部署一个带有构建服务器的网站。我有一个构建定义,它使用标
webdeploy3
,并且服务webdeploymentagent服务
正在这两台机器上运行。我在我的域中拥有该服务帐户,并将这两台计算机上的帐户添加到Administrators组。我还将此帐户用于构建和测试控制器和代理
2008服务器是构建服务器,我想在2012服务器上部署一个带有构建服务器的网站。我有一个构建定义,它使用标准TFS 2012 Update 2过程模板(作为MS构建参数添加了/p:DeployOnBuild=True
)生成带有zip和deploy.cmd等的包
我有另一个基于LabDefaultTemplate TFS 2012 update 2模板的构建定义。在实验室流程模板中,我在“部署”选项卡上添加了以下命令:
"$(BuildLocation)\_PublishedWebsites\UI.Web.Mvc4_Package\UI.Web.Mvc4.deploy.cmd" /y /m:SERVERNAME_OF_THE_2012_SERVER
当我运行第二个构建定义时,会出现“拒绝访问”错误。我不知道它是从哪里来的。我看这里没有什么特别的事情发生。我还将日志设置为“诊断”,但这不起作用
当我与远程桌面连接到2008构建服务器并手动运行相同的deploy.cmd
时,一切正常。该站点部署在2012服务器上,所有内容都在运行
有人能帮我吗
谢谢
从生成中添加日志:
Deploy Build on Environment
00:22
Deploying Build
00:22
Run Deployment scripts
Initial Property Values
Values = Web Server | $(BuildLocation)\_PublishedWebsites\UI.Web.Mvc4_Package\start.bat
00:22
Run Deployment Task
Initial Property Values
BuildLocation = \\AP-GDA06-TFSB\DropFolder\Dev MVC4\Dev MVC4_20130510.11
DeploymentScriptDetails = Web Server | $(BuildLocation)\_PublishedWebsites\UI.Web.Mvc4_Package\start.bat
LabEnvironmentUri = vstfs:///LabManagement/LabEnvironment/3
MaxWaitTime = 00:30:00
ThrowOnError = True
UseRoleForDeployment = True
Deployment Task Logs for Machine: 2012_SERVER
Access is denied
Exception Message: Team Foundation Server could not complete the deployment task for machine '2012_SERVER', script '\\2008_SERVER\DropFolder\Dev MVC4\Dev MVC4_20130510.11\_PublishedWebsites\UI.Web.Mvc4_Package\start.bat' and arguments ''. (type LabDeploymentProcessException)
Exception Stack Trace:
Server stack trace:
at Microsoft.TeamFoundation.Lab.Workflow.Activities.RunDeploymentTask.ExecuteDeploymentTask.RunCommand(AsyncState state)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
at System.Action`1.EndInvoke(IAsyncResult result)
at Microsoft.TeamFoundation.Lab.Workflow.Activities.RunDeploymentTask.ExecuteDeploymentTask.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
at System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
Final Property Values
BuildLocation = \\2008_SERVER\DropFolder\Dev MVC4\Dev MVC4_20130510.11
DeploymentScriptDetails = Web Server | $(BuildLocation)\_PublishedWebsites\UI.Web.Mvc4_Package\start.bat
LabEnvironmentUri = vstfs:///LabManagement/LabEnvironment/3
MaxWaitTime = 00:30:00
ThrowOnError = True
UseRoleForDeployment = True
Final Property Values
Values = Web Server | $(BuildLocation)\_PublishedWebsites\UI.Web.Mvc4_Package\start.bat
START UI.Web.Mvc4.deploy.cmd /y /m:2012_SERVER
启动的BAT文件包含以下命令:
Deploy Build on Environment
00:22
Deploying Build
00:22
Run Deployment scripts
Initial Property Values
Values = Web Server | $(BuildLocation)\_PublishedWebsites\UI.Web.Mvc4_Package\start.bat
00:22
Run Deployment Task
Initial Property Values
BuildLocation = \\AP-GDA06-TFSB\DropFolder\Dev MVC4\Dev MVC4_20130510.11
DeploymentScriptDetails = Web Server | $(BuildLocation)\_PublishedWebsites\UI.Web.Mvc4_Package\start.bat
LabEnvironmentUri = vstfs:///LabManagement/LabEnvironment/3
MaxWaitTime = 00:30:00
ThrowOnError = True
UseRoleForDeployment = True
Deployment Task Logs for Machine: 2012_SERVER
Access is denied
Exception Message: Team Foundation Server could not complete the deployment task for machine '2012_SERVER', script '\\2008_SERVER\DropFolder\Dev MVC4\Dev MVC4_20130510.11\_PublishedWebsites\UI.Web.Mvc4_Package\start.bat' and arguments ''. (type LabDeploymentProcessException)
Exception Stack Trace:
Server stack trace:
at Microsoft.TeamFoundation.Lab.Workflow.Activities.RunDeploymentTask.ExecuteDeploymentTask.RunCommand(AsyncState state)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
at System.Action`1.EndInvoke(IAsyncResult result)
at Microsoft.TeamFoundation.Lab.Workflow.Activities.RunDeploymentTask.ExecuteDeploymentTask.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
at System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
Final Property Values
BuildLocation = \\2008_SERVER\DropFolder\Dev MVC4\Dev MVC4_20130510.11
DeploymentScriptDetails = Web Server | $(BuildLocation)\_PublishedWebsites\UI.Web.Mvc4_Package\start.bat
LabEnvironmentUri = vstfs:///LabManagement/LabEnvironment/3
MaxWaitTime = 00:30:00
ThrowOnError = True
UseRoleForDeployment = True
Final Property Values
Values = Web Server | $(BuildLocation)\_PublishedWebsites\UI.Web.Mvc4_Package\start.bat
START UI.Web.Mvc4.deploy.cmd /y /m:2012_SERVER
检查以下答案:
这就是我的解决方案
这也可能对您有用:检查以下答案:
这就是我的解决方案
这对您也很有用:如果启动使用DefaultLabTemplate的生成定义,您应该在生成日志中看到以下内容:
如果需要部署
部署
保留部署环境
部署基于环境的构建
部署构建
运行部署脚本
运行部署任务
计算机的部署任务日志:
使用实验室服务帐户访问以下位置:。
您是否看到实验室服务帐户正在使用?如果启动使用DefaultLabTemplate的生成定义,您应该在生成日志中看到以下内容:
如果需要部署
部署
保留部署环境
部署基于环境的构建
部署构建
运行部署脚本
运行部署任务
计算机的部署任务日志:
使用实验室服务帐户访问以下位置:。
<> P>使用VisualStudio 2012更新4和Team Foundation Server,在单向信任或隔离/工作组网络配置上,我们发现需要额外的步骤。当通过构建部署测试工作流(而不是Web部署)运行自动化单元测试时,我们发现设置实验室服务帐户只是解决方案的一部分。为了避免生成中出现拒绝访问的错误,我们还必须为Visual Studio实验室代理服务设置用户
这是设置实验室服务帐户(在本例中为“.\LabAdmin”)后,服务小程序中的服务的外观:
Visual Studio实验室代理服务|配置、监视…|运行|自动|本地系统
Visual Studio实验室网络代理服务|设置网络属性…|运行|自动|本地系统
Visual Studio测试代理|提供分布式…|正在运行|自动|。\LabAdmin
为了修复访问被拒绝错误,我们还必须在实验室服务帐户下运行Visual Studio实验室代理服务:
Visual Studio Lab Agent Service | Configures, monitors... | Running | Automatic | .\LabAdmin
Visual Studio Lab Network Agent Service | Sets network propert... | Running | Automatic | Local System
Visual Studio Test Agent | Provides distributed... | Running | Automatic | .\LabAdmin
Visual Studio实验室代理服务|配置、监视…|正在运行|自动|。\LabAdmin
Visual Studio实验室网络代理服务|设置网络属性…|运行|自动|本地系统
Visual Studio测试代理|提供分布式…|正在运行|自动|。\LabAdmin
进行此更改并重新启动服务后,访问被拒绝错误消失。这是在两个不同的目标计算机上重复的,至少对于我们的配置来说,这似乎是必要的步骤。< P>使用VisualStudio 2012更新4和Team Foundation Server,在单向信任或隔离/工作组网络配置上,我们发现需要另外一个步骤。当通过构建部署测试工作流(而不是Web部署)运行自动化单元测试时,我们发现设置实验室服务帐户只是解决方案的一部分。为了避免生成中出现拒绝访问的错误,我们还必须为Visual Studio实验室代理服务设置用户
这是设置实验室服务帐户(在本例中为“.\LabAdmin”)后,服务小程序中的服务的外观:
Visual Studio实验室代理服务|配置、监视…|运行|自动|本地系统
Visual Studio实验室网络代理服务|设置网络属性…|运行|自动|本地系统
Visual Studio测试代理|提供分布式…|正在运行|自动|。\LabAdmin
为了修复访问被拒绝错误,我们还必须在实验室服务帐户下运行Visual Studio实验室代理服务:
Visual Studio Lab Agent Service | Configures, monitors... | Running | Automatic | .\LabAdmin
Visual Studio Lab Network Agent Service | Sets network propert... | Running | Automatic | Local System
Visual Studio Test Agent | Provides distributed... | Running | Automatic | .\LabAdmin
Visual Studio实验室代理服务|配置、监视…|正在运行|自动|。\LabAdmin
Visual Studio实验室网络代理服务|设置网络属性…|运行|自动|本地系统
Visual Studio测试代理|提供分布式…|正在运行|自动|。\LabAdmin
进行此更改并重新启动服务后,访问被拒绝错误消失。这在两个不同的ta上重复