2013-05-10 36 views
1

我一直在關注Standard Environments for Automated Deployment and Testing,並且遇到了一些錯誤。嘗試使用Web部署時拒絕訪問

我有兩個服務器,一個是Windows Server 2008 R2和另一個Windows Server 2012。在這兩個我已經安裝Web Deploy 3和服務Web Deployment Agent Service正在兩臺機器上運行。我在我的域中有服務帳戶,並將兩臺機器上的帳戶添加到管理員組。我也使用這個帳戶建立和測試控制器和代理。

2008服務器是構建服務器,我想將生成服務器的網站部署到2012服務器。我有一個構建定義,使用zip和deploy.cmd等與標準TFS 2012更新2過程模板(作爲MS構建參數添加/p:DeployOnBuild=True)等包。

我有另一個基於LabDefaultTemplate TFS 2012更新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 

在啓動該BAT文件包含以下命令:

START UI.Web.Mvc4.deploy.cmd /y /m:2012_SERVER 
+0

你能提供更多的錯誤信息嗎?您應該能夠打開構建版本和「查看日誌」以準確查看發生了什麼以及在哪裏......您可能需要將構建過程中的「記錄詳細信息」更改爲「診斷」並再次運行。 – 2013-05-10 18:57:43

+0

哦,你是在本地服務器上還是在http://tfs.visualstudio.com上運行? – 2013-05-10 19:00:51

+0

我在本地運行TFS 2012和構建服務器。所以沒有云在這裏介紹。我添加了引發錯誤的日誌部分。 – 2013-05-12 08:35:50

回答

0

檢查這個答案:https://stackoverflow.com/a/16566204/648297

這是我的情況的解決方案。

這可能是對您有用,太:What is Lab Service Account?

+0

下的評論我填寫了Lab Service帳戶。我從部署服務器卸載了TFS 2012代理。我也從實驗室管理中刪除了服務器。我重新啓動了測試控制器。再次將該服務器添加到實驗室管理中,並再次用該實驗室服務帳戶部署。該代理再次安裝,但沒有運氣。當我只在具有讀權限的dropfolder上添加用戶「domain \ ComputerNameToDeploy $」時,一切正常,因此必須與用戶聯繫 – 2013-05-17 08:44:55

+0

當我轉到已在實驗室管理中配置的服務器並啓動測試代理配置工具我看到配置了實驗室服務帳戶。當我去服務時,我看到在「本地系統」下運行的Visual Studio Lab代理服務和Visual Studio網絡代理服務。不應該這也是實驗室服務帳戶? – 2013-05-17 08:49:11

+0

我剛剛創建了一個答案,因爲評論的長度有限,不允許正確格式化...... – Elena 2013-05-17 11:07:28

1

如果你開始搭建定義,使用DefaultLabTemplate你應該看到下面您生成日誌:

...

If deployment needed 
Do deployment 
    Reserve Environment For Deployment 
    Deploy Build on Environment 
    Deploying Build 
     Run Deployment scripts 
     Run Deployment Task 
      Deployment Task Logs for Machine: <your machine> 
      Accessing the following location using the lab service account: <your service account>, <your drop location>. 

...

您是否看到Lab Service帳戶正在使用?

+0

我在問這個問題,因爲如果你定義實驗室服務帳戶它不適用於現有的實驗室環境,你必須更新它們,請參閱http://msdn.microsoft.com/en-us/library/ee712736.aspx – Elena 2013-05-17 12:00:32

+0

我看到了這一行「」,機器是正確的。這是它應該部署到的服務器。我沒有看到「使用實驗室服務帳戶訪問以下位置」一行。所以我導航到你的url,但TFSLabConfig命令工具不能識別任何「UpdateServiceAccountOnDeployedEnvironments」命令。我應該查看團隊基礎服務器11文件夾,而不是2010文件夾?我們正在使用TFS 2012更新2. – 2013-05-17 14:23:04

+0

Elena,你有什麼地方可以在TFS 2012中找到UpdateServiceAccountOnDeployedEnvironments?謝謝 – 2013-05-18 15:37:37

0

在單向信任或隔離/工作組網絡配置中使用Visual Studio 2012 Update 4和Team Foundation Server時,我們發現需要執行額外的步驟。當通過Build-Deploy-Test工作流程(但不是Web Deploy)運行自動化單元測試時,我們發現設置實驗室服務帳戶只是解決方案的一部分。爲了避免在構建中訪問被拒絕錯誤,我們還必須爲Visual Studio Lab代理服務設置用戶。

這就是在服務小模樣設置了實驗室服務帳戶後的服務(在這個例子中,「\ LabAdmin。」):

 
Visual Studio Lab Agent Service   | Configures, monitors... | Running | Automatic | Local System   
Visual Studio Lab Network Agent Service | Sets network propert... | Running | Automatic | Local System   
Visual Studio Test Agent    | Provides distributed... | Running | Automatic | .\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   

使這一變化,並重新啓動服務後,訪問被拒絕的錯誤就走開了。這在兩臺不同的目標計算機上重複出現,至少在我們的配置中似乎是必要的一步。

相關問題