Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure devops 异步回调在VSTS门调用REST API任务中不起作用_Azure Devops_Azure Pipelines Release Pipeline - Fatal编程技术网

Azure devops 异步回调在VSTS门调用REST API任务中不起作用

Azure devops 异步回调在VSTS门调用REST API任务中不起作用,azure-devops,azure-pipelines-release-pipeline,Azure Devops,Azure Pipelines Release Pipeline,我正在使用中的Invoke REST API任务作为我的环境中的预部署门。任务已配置为等待来自我的服务(VSTS外部)的回调 问题是,当我尝试调用VSTS以将任务标记为已完成时,我总是会收到一个错误消息,表示未找到集线器门的编排会话xxxxxx\uxxxxxx\uuxxxxxx。当与发布或构建定义一起使用时,相同的代码可以正常工作,但当与门一起使用时,会出现此错误 下面是我的一段代码,用于调用API var taskCompletedEvent = new TaskCompletedEvent

我正在使用中的Invoke REST API任务作为我的环境中的预部署门。任务已配置为等待来自我的服务(VSTS外部)的回调

问题是,当我尝试调用VSTS以将任务标记为已完成时,我总是会收到一个错误消息,表示未找到集线器门的
编排会话xxxxxx\uxxxxxx\uuxxxxxx
。当与发布或构建定义一起使用时,相同的代码可以正常工作,但当与门一起使用时,会出现此错误

下面是我的一段代码,用于调用API

var taskCompletedEvent = new TaskCompletedEvent(jobId, taskInstanceGuid, TaskResult.Succeeded);
taskClient.RaisePlanEventAsync(projectGuid, HUBNAME, planGuid, taskCompletedEvent).SyncResult();

发生此问题的原因是,与构建或发布相比,在如何执行门方面存在细微的偏差。一般来说,使用回调模式更新此类服务器端任务最安全的方法是使用VSTS团队自己维护的,它会处理所有此类怪癖

为使其发挥作用,可对原始代码进行的细微更改如下:

var taskCompletedEvent = new TaskCompletedEvent(taskInstanceId, Guid.Empty, TaskResult.Succeeded);
taskClient.RaisePlanEventAsync(projectGuid, HUBNAME, planGuid, taskCompletedEvent).SyncResult();

区别在于事件的初始化方式。未定义TaskId参数,且未在任何位置使用JobId。建议仍然使用GitHub上的TaskClient,以确保即使在VSTS发布管理团队决定修复这一相当恼人的差异时,一切仍能正常工作。

发生此问题的原因是,与构建或发布相比,gates的执行方式略有偏差。一般来说,使用回调模式更新此类服务器端任务最安全的方法是使用VSTS团队自己维护的,它会处理所有此类怪癖

为使其发挥作用,可对原始代码进行的细微更改如下:

var taskCompletedEvent = new TaskCompletedEvent(taskInstanceId, Guid.Empty, TaskResult.Succeeded);
taskClient.RaisePlanEventAsync(projectGuid, HUBNAME, planGuid, taskCompletedEvent).SyncResult();
区别在于事件的初始化方式。未定义TaskId参数,且未在任何位置使用JobId。建议仍然使用GitHub上的TaskClient,以确保即使VSTS发布管理团队决定修复这一相当恼人的差异,一切仍能正常工作