1

自動化された展開とテストの標準環境に従っていますが、いくつかのエラーが発生しました。

Windows Server 2008 R2Windows Server 2012の2 つのサーバーがあります。私がインストールWeb Deploy 3した両方で、サービスWeb Deployment Agent Serviceは両方のマシンで実行されています。ドメインにサービス アカウントがあり、両方のマシンのアカウントを管理者グループに追加しました。Build and Test コントローラーとエージェントにもこのアカウントを使用しました。

2008 サーバーはビルド サーバーであり、ビルド サーバーを使用して Web サイトを 2012 サーバーにデプロイしたいと考えています。deploy.cmd標準のTFS 2012 Update 2プロセス テンプレート ( /p:DeployOnBuild=TrueMS ビルド引数として追加) を使用して、zip などでパッケージを作成するビルド定義が 1 つあります。

LabDefaultTemplate TFS 2012 update 2 テンプレートに基づく別のビルド定義があります。ラボ プロセス テンプレートで、[展開] タブに次のコマンドを追加しました。

"$(BuildLocation)\_PublishedWebsites\UI.Web.Mvc4_Package\UI.Web.Mvc4.deploy.cmd" /y /m:SERVERNAME_OF_THE_2012_SERVER

2 番目のビルド定義を実行すると、「アクセスが拒否されました」というエラーが表示されます。どこから来ているのかわかりません。ここで特別なことが起こっているとは思いません。ログも診断に設定しましたが、うまくいきません。

リモート デスクトップを使用して 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
4

3 に答える 3

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 アカウントが使用していることがわかりますか?

于 2013-05-17T11:05:30.163 に答える
0

この回答を確認してください: https://stackoverflow.com/a/16566204/648297

これが私の場合の解決策でした。

これはあなたにも役立つかもしれません:ラボ サービス アカウントとは何ですか?

于 2013-05-16T14:19:59.287 に答える