2012-12-10 71 views
2

我正在嘗試使用Build-Deploy-Test工作流設置TFS 2012的標準實驗室環境。我設置測試控制器和測試代理但當LabManagement工作流程開始執行我得到RunDeploymentTask活動異常TFS實驗室管理部署腳本

Initial Property Values 
BuildLocation = \\S0503TFS2T\TFSPlayground\ConsoleApplicationBuild\ConsoleApplicationBuild_20121210.23 
DeploymentScriptDetails = agent1 | "$(BuildLocation)\Deploy.bat" $(BuildLocation) | c:\Env 
LabEnvironmentUri = vstfs:///LabManagement/LabEnvironment/4 
MaxWaitTime = 00:30:00 
ThrowOnError = True 
UseRoleForDeployment = True 
Deployment Task Logs for Machine: win7testagent1 
Access is denied 
Exception Message: Team Foundation Server could not complete the deployment task for machine 'win7testagent1', script '"\\S0503TFS2T\TFSPlayground\ConsoleApplicationBuild\ConsoleApplicationBuild_20121210.23\Deploy.bat"', arguments '\\S0503TFS2T\TFSPlayground\ConsoleApplicationBuild\ConsoleApplicationBuild_20121210.23' and working directory 'c:\Env'. (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) 

顯然,這是安全問題,我不能克服它 下面是這個過程是通過MSDN解釋:

構建 - 部署 - 測試工作流程開始構建,然後獲取部署腳本。 構建定義將構建文件複製到放置位置。 工作流程會在分配腳本的特定機器或機器角色的工作目錄中運行每個部署腳本。 每個部署腳本都從放置位置檢索構建文件。 每個部署腳本都將指定的構建文件複製或安裝到實驗室環境中的計算機上。

此時問題出現 - 工作流程運行特定機器的工作目錄中的每個部署腳本。

兩臺計算機都在同一個域中,運行Build服務的用戶也位於遠程計算機的管理員組中。我甚至分享了遠程文件夾,在這個文件夾中工作流應該將所有文件/腳本複製到網絡中的每個人,但是沒有再次運氣。

我正在做一些愚蠢的事,讓我發瘋 - 任何幫助或想法都非常感謝!

最佳, 雷達

+1

測試代理在win7testagent1上運行的帳戶是什麼?該帳戶是否具有生成文件夾的權限或您在部署腳本中使用的其他任何內容? –

+0

測試和構建代理正在使用與測試控制器相同的域帳戶運行。 –

+0

如果將部署腳本替換爲「dir/s」,這是否工作正常?試圖縮小導致失敗的原因。 – allen

回答

0

以下解決方案可以解決您的問題。

步驟:將以下服務器上創建本地帳戶:本地實驗室服務帳戶 - tfslab

  1. TFS測試控制器服務器:創建本地tfslab帳戶。還要在測試控制器配置控制檯中將tfslab配置爲實驗室服務帳戶

  2. tfs測試代理服務器:創建本地tfslab帳戶並將tfslab添加到本地管理組。同時更新Visual Studio Test Agent服務和Visual Studio Lab Agent服務以作爲tfslab運行。

  3. tfs下載文件夾服務器:創建本地tfslab帳戶。並將共享讀取權限添加到tfs放置文件夾。

詳情討論見here

0

您可能會嘗試檢查蝙蝠腳本最後的%ErrorLevel%。我遇到了同樣的錯誤,結果發現該錯誤是由robocopy的退出代碼引起的,當複製成功時返回1。我將錯誤代碼設置爲0,問題已修復。