我正在运行TFS 2013 Update 4,版本管理客户端更新4,版本管理服务器更新4和更新4部署代理。我正在使用ReleaseTfvcTemplate.12.xml。
当开发人员签入代码时,TFS Build会编译代码,如果代码完成,则会将其释放到DEV阶段。这很好用。 但是,打开电子邮件会产生问题。
让我们说我需要通知10个人部署,然后发送同样的10个人"批准"接受部署后的电子邮件,它自动成为。这是20封电子邮件。
我打开RM服务器上的详细日志记录,我发现每封电子邮件需要30秒才能发送。他们一个接一个地发送一个。所以发送二十封电子邮件需要十分钟。
部署开始后,电子邮件就会开始发送。实际部署通常需要大约1分钟。发布管理将构建标记为已部署,并继续发送"部署"和"批准"电子邮件。与此同时,TFS构建配置日志仍在等待:
处理每个ConfigurationsToRelease 发布构建 运行当前配置的发布管理构建过程
如果部署完成了它的'电子邮件因为它们已关闭或只有3-4个要发送,然后TFS构建配置日志完成发布并且构建标记为成功。但是,TFSBuild只会在"等待构建"等待5分钟。 ReleaseTfvcTemplate工作流程的一部分。如果发送20封电子邮件需要的时间超过5分钟,则构建失败。如何增加此超时?我已经在发布管理中找到的每个组件/工具都超时了。我甚至改变了一些web.config超时设置。
最终结果是我最终得到了已部署的代码,Release Management认为一切正常,TFS Build认为构建失败。
编辑:
以下是我从详细的RM服务器日志中提取的一些行。注意时间戳。 (我剪了一些线)
2015/7/28 3:49:48 PM - Verbose - (13008,12024) - 工作流程执行 完成了。 7/28/2015 3:49:48 PM - 信息 - (13008,12024) - DeploymentControllerServiceProcessor.OnActivityComplete:工作流程 成功完成,接受部署步骤。 LocalReleaseId: 596,LocalReleaseStepId:2158 7/28/2015 3:54:47 PM - 信息 - (13008,6952) - DeploymentControllerServiceProcessor.PrepareNotificationForDeployerImplementation: NextActivityReadyForDeployment:7/28/2015 3:54:47 PM - 信息 - (13008,6952) - DeploymentControllerServiceProcessor.GetNextComponentReadyForDeployment: DeploymentEvent:7/28/2015 3:54:49 PM - 信息 - (13008,12024) - DeploymentControllerServiceProcessor.OnActivityComplete,app.Completed中的异常 2015年7月28日下午3:54:49 - 详细 - (13008,12024) - 请求是 中止:请求被取消了:\ r \ n \ r \ n at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
在 Microsoft.TeamFoundation.Release.Data.WebRequest.PlatformHttpClient.EndGetResponse(IAsyncResult的 asyncResult)at Microsoft.TeamFoundation.Release.Data.WebRequest.RestClientResponseRetriever.EndGetAsyncMemoryStreamFromResponse(IAsyncResult的 asyncResult,IPlatformHttpClient platformHttpClient)at Microsoft.TeamFoundation.Release.Data.WebRequest.RestClientResponseRetriever.EndDownloadString(IAsyncResult的 asyncResult,IPlatformHttpClient platformHttpClient)at Microsoft.TeamFoundation.Release.Data.WebRequest.RestClient.EndPost(IAsyncResult的 asyncResult)at Microsoft.TeamFoundation.Release.Data.Proxy.RestProxy.HttpRequestor<> c__DisplayClass1.b__0(字符串 url,String body)at Microsoft.TeamFoundation.Release.Data.Proxy.RestProxy.BaseNotificationServiceProxy.SendNotification(的Int32 releaseId,String releaseName,String applicationVersionName,String stageTypeName,String environmentName,Int32 releaseStepId,Int32 releaseStepTypeId,Boolean releaseStepIsAutomated)at Microsoft.TeamFoundation.Release.Workflow.Services.ReleaseWorkflowService.CreateNextReleaseStep(发布 发布,舞台阶段,StageStep stageStep,Int32 releaseStageRank, Int32 trialNumber)at Microsoft.TeamFoundation.Release.Workflow.Services.ReleaseWorkflowService.MoveToNextReleaseStep(发布 release,Stage currentStage,ReleaseStep currentReleaseStep)at Microsoft.TeamFoundation.Release.Workflow.Services.ReleaseWorkflowService.MoveWorkflowForward(发布 发布,ReleasePath releasePath,Stage currentStage,ReleaseStep currentReleaseStep,Int32 lastStepRankOfCurrentStage)at Microsoft.TeamFoundation.Release.Workflow.Services.ReleaseWorkflowService.AcceptStep(发布 release,Int32 releaseStepId,Int32 actualApproverId,String approverComment,Nullable1 deferredDateTime) at Microsoft.TeamFoundation.Release.Workflow.Services.ReleaseWorkflowService.CreateNextReleaseStep(Release release, Stage stage, StageStep stageStep, Int32 releaseStageRank, Int32 trialNumber) at Microsoft.TeamFoundation.Release.Workflow.Services.ReleaseWorkflowService.MoveToNextReleaseStep(Release release, Stage currentStage, ReleaseStep currentReleaseStep) at Microsoft.TeamFoundation.Release.Workflow.Services.ReleaseWorkflowService.MoveWorkflowForward(Release release, ReleasePath releasePath, Stage currentStage, ReleaseStep currentReleaseStep, Int32 lastStepRankOfCurrentStage) at Microsoft.TeamFoundation.Release.Workflow.Services.ReleaseWorkflowService.AcceptStep(Release release, Int32 releaseStepId, Int32 actualApproverId, String approverComment, Nullable
1 deferredDateTime)at Microsoft.TeamFoundation.Release.ServiceProcessor.Processor.DeploymentControllerServiceProcessor.OnActivityComplete(字符串 workflow,WorkflowApplicationCompletedEventArgs e)
答案 0 :(得分:0)
“TFS触发器部署超时”的“设置”下的“管理”选项卡上有一个设置。如果你增加它,5分钟后构建不会失败。
我花了一些时间来研究为什么发送每封电子邮件需要30秒。我从未见过这个特殊问题......这可能是网络问题,也可能是您邮件服务器的问题。