打开电子邮件通知会中断MS版本管理

时间:2015-07-30 14:20:02

标签: deployment tfs build release-management ms-release-management

我正在运行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,Nullable 1 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)

1 个答案:

答案 0 :(得分:0)

“TFS触发器部署超时”的“设置”下的“管理”选项卡上有一个设置。如果你增加它,5分钟后构建不会失败。

我花了一些时间来研究为什么发送每封电子邮件需要30秒。我从未见过这个特殊问题......这可能是网络问题,也可能是您邮件服务器的问题。