当前位置: 首页 > 知识库问答 >
问题:

从Azure运营模式发布管道调用控制台应用程序

尉迟越
2023-03-14

尝试让在prem上安装了部署代理的Azure DevOps发布管道以有权访问on-prem数据库的特定用户身份运行控制台应用程序。

这就是工作流程

Azure发布管道调用-

我正在使用管道中的PowerShell任务与此内联脚本:

$CMD = '$CMD = 'C:\ScheduledScripts\Adm\SpecToHobImport\SpecToHobImport.exe''
$user = $Env:userid
$password = $Env:pass
$dates = '$(startDate) $(endDate)'

$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $user, $securePassword

Start-Process -FilePath $CMD -Credential $credential -ArgumentList "$(startDate) $(endDate)" 

我知道userid、密码和命令行参数正在正确传递,但是无论控制台应用程序有多简单,当代理运行PowerShell脚本时,它都会崩溃。我尝试在各种服务帐户(系统、管理员等)下运行运营模式代理服务,我可以在代理安装的服务器上手动运行脚本,脚本和控制台应用程序手动运行良好。

当我运行发布管道时,它会在DevOps中报告它已成功运行,我只能从代理服务器上的windows事件日志中检测到console应用程序已运行并立即崩溃。

我在事件日志中获得以下两个条目:

Faulting application name: conhost.exe, version: 6.3.9600.17415, time stamp: 0x5450410b
Faulting module name: USER32.dll, version: 6.3.9600.19478, time stamp: 0x5d6aa558
Exception code: 0xc0000142
Fault offset: 0x00000000000ecf30
Faulting process id: 0x770
Faulting application start time: 0x01d5bcdf64d0ac17
Faulting application path: C:\Windows\system32\conhost.exe
Faulting module path: USER32.dll
Report Id: a292ad24-28d2-11ea-8103-0050569f788f
Faulting package full name: 
Faulting package-relative application ID: 

而这个条目:

Faulting application name: SpecToHobImport.exe, version: 1.0.0.0, time stamp: 0x5e06463f
Faulting module name: KERNELBASE.dll, version: 6.3.9600.18895, time stamp: 0x5a4b127e
Exception code: 0xc0000142
Fault offset: 0x0009d4e2
Faulting process id: 0x40c
Faulting application start time: 0x01d5bcdf64d0ac17
Faulting application path: C:\ScheduledScripts\Adm\SpecToHobImport\SpecToHobImport.exe
Faulting module path: KERNELBASE.dll
Report Id: a2a5c015-28d2-11ea-8103-0050569f788f
Faulting package full name: 
Faulting package-relative application ID: 

即使主机是空的控制台应用程序也会导致应用程序崩溃。

共有3个答案

乐正秦斩
2023-03-14

以交互方式运行代理解决了这个问题。我在服务器上创建了第二个代理,在配置时,我取消了“-runasservice”,只是手动运行代理“\run”

越文康
2023-03-14

当我运行发布管道时,它会在DevOps中报告它已成功运行,我只能从代理服务器上的windows事件日志中检测到console应用程序已运行并立即崩溃。

似乎发布管道已经完成并返回了success状态。

因此,我认为您的崩溃可能是由于VST的默认行为造成的,它将在完成构建/发布期间关闭所有启动的进程。就像jessehouwing在这里描述的那样。

曹鸿风
2023-03-14

发布中启动的所有流程将在发布结束时完成。如果不想关闭流程,请尝试设置变量process。干净=错误。

但当你们下次创建一个新版本时,你们需要在启动它之前停止这个过程

 类似资料:
  • 我正在尝试在Azure DevOps(内部部署)中配置发布管道以支持git流策略。我正在努力实现的目标: promise“发布/*”触发软件的构建并发布到QA的位置 promise“主控”从步骤1获取相同的软件构建(工件),并发布到生产位置 因此,当我做一个git-flow开始发布时,软件可用于测试/质量保证,当我完成发布时,它可供用户使用。 我的构建管道工作正常,它由发布分支触发,并以发布工件任

  • 我有一个完全工作的网页API,用点网核心3.1编写。我一直在关注蒂姆·科雷泰尔经理系列。该应用程序在生成时不会出现任何错误,并且在 Visual Studio 中运行时按预期方式工作。我有一个免费的 Azure 订阅。我在 linux 上设置了一个 F1 免费 Web 应用服务和两个基本 SQL Server 数据库,它们都位于同一资源组中,并将防火墙设置为允许访问其他 Azure 服务进行连接。

  • 我有一个Java应用程序,可以使用Azure扩展从Eclipse部署到Tomcat8应用程序服务。 我创建了一个构建管道,该管道使用创建工件。战争档案。 然后,我创建了一个发布管道,并设置了一个“将WAR部署到Azure应用程序服务”。管道部署war文件并将其展开,但其他一些配置不正确,因为该应用程序在Tomcat服务器上不可用。 是否有人使用此任务成功部署到Tomcat 8应用程序服务?如果是这

  • 在我们的Azure DevOps部署中,我们有一个生成并运行“子”管道的“主”发布管道。子管道从不直接运行。 目前,我们在主管道中使用Powershell脚本启动子管道,但我想知道是否有一个内置任务可以自动执行此操作?我已经看了任务列表,但是没有什么跳出。如果没有也没关系,但我想问问,以防我错过了什么。

  • 我的任务是开发现有遗留应用程序的Azure DevOps实现。应用程序有一个QA团队,该团队使用500个自动化测试用例。此测试用例是使用量角器开发的。所有测试用例都是使用JavaScript开发的。 对于现有设置,以下是所采取的步骤:a.发布管道部署ASP。NET应用程序到Azure app services b。QA人员手动登录到VM并启动量角器测试。 我们可以使用Azure devOps管道中

  • 我试图配置一个Azure逻辑应用与Azure Devops连接器,将创建一个新的管道版本 管道需要两个变量,系统和范围: 如何在logic app中配置名称和值?,我试过了,但没用: 如何将这些变量传递到Azure运营模式中的发布管道?