首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当将管道拆分为构建和发布时,WebJob不起作用

当将管道拆分为构建和发布时,WebJob不起作用
EN

Stack Overflow用户
提问于 2020-10-02 08:53:27
回答 2查看 439关注 0票数 0

我正在尝试使用Azure DevOps部署一个WebJob。我有以下管道:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pool:

#  name: Hosted Windows 2019 with VS2019
  vmImage: windows-2019

  demands:
  - msbuild
  - visualstudio
  - vstest

variables:
    BuildPlatform: 'any cpu'
    BuildConfiguration: 'release'
    Parameters.solution: '**\*.sln'

steps:

- task: UseDotNet@2
  displayName: 'Use Net Core 3.1.0'
  inputs:
#    packageType: 'runtime' # Options: runtime, sdk
    packageType: 'sdk'
    version: '3.1.100'

- task: NuGetToolInstaller@1
  displayName: 'Use NuGet 5.7.0'
  inputs:
    versionSpec: 5.7.0

- task: NuGetCommand@2
  displayName: 'NuGet restore'
  inputs:
    restoreSolution: '$(Parameters.solution)'

- task: DotNetCoreCLI@2
  displayName: 'net build'
  inputs:
    command: 'build'
    projects: '**\*.csproj'
    arguments: '--configuration Release'

- task: DotNetCoreCLI@2
  displayName: 'net publish'
  inputs:
    command: 'publish'
    publishWebProjects: false
    projects: '**\*.csproj'
    arguments: '--output $(Build.ArtifactStagingDirectory)\WebJob\App_Data\jobs\continuous\WJ_Channel_Fetch'
    zipAfterPublish: false
    modifyOutputPath: false

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: '"dotnet WJ_Channel_Fetch.dll" | Out-File run.cmd -Encoding ASCII; $LASTEXITCODE'
    errorActionPreference: 'stop'
    failOnStderr: false
    ignoreLASTEXITCODE: false
    pwsh: false
    workingDirectory: '$(Build.ArtifactStagingDirectory)\WebJob\App_Data\jobs\continuous\WJ_Channel_Fetch'

- task: AzureAppServiceManage@0
  displayName: 'Stop Azure App Service: XXXX-pipelines2'
  inputs:
    azureSubscription: 'Visual Studio Professional (**********)'
    Action: 'Stop Azure App Service'
    WebAppName: 'XXXX-pipelines2'

- task: AzureRmWebAppDeployment@3
  displayName: 'Azure App Service Deploy: XXXX-pipelines2'
  inputs:
    azureSubscription: 'Visual Studio Professional (**********)'
    WebAppName: 'XXXX-pipelines2'
    Package: '$(Build.ArtifactStagingDirectory)\WebJob'
    TakeAppOfflineFlag: true

- task: AzureAppServiceManage@0
  displayName: 'Start Azure App Service: XXXX-pipelines2'
  inputs:
    azureSubscription: 'Visual Studio Professional (**********)'
    Action: 'Start Azure App Service'
    WebAppName: 'XXXX-pipelines2'

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: drop'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'
  condition: succeededOrFailed()

这很好,但我想将部署部分移到发布管道上,这样我就可以利用环境之间的批准(DEV、QA、测试、PROD)。

问题是,当我将它移动到发布管道时,会部署WebJob,但它似乎处于不一致的状态。我不能停止它,也不能删除它;摆脱它的唯一方法是删除WebApp。如果我只使用上面的YAML就行了。

这是我的发布管道:

有什么想法吗?事先非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-03 07:41:06

通过将Azure difference部署任务降级到版本3。*解决了这个问题,这也是我的YAML文件与我使用GUI创建的发布管道之间的区别。

我仍然认为它应该与最新的版本一起工作,但就目前而言,我是开放的。

票数 1
EN

Stack Overflow用户

发布于 2020-10-02 10:21:47

这有很多部分,因为您的解决方案已经在YAML中工作,并且您只需要得到批准,所以使用YAML也可以很容易地实现这一点。

您可以利用Azure DevOps的环境特性。在“环境”部分中,您可以按以下方式添加审批

选择各自的环境(您可以根据YAML手动创建该环境)

以上就是解决方案之一。如果这有用的话请告诉我。另一种解决方案是使用释放管道下的部署方法。

在这种情况下,您需要分别部署web作业和实际代码。

wwwroot>>app_data>>job

  • then下的
  1. 首先部署web作业,将剩余的代码(如果与应用程序代码一起部署)部署到www.root

一旦您需要在中手动添加web作业,它将直接与部署一起工作。在我的环境中,我也在做类似的事情,而且工作也很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64175425

复制
相关文章
Java 日期类型比较没有返回正确的结果
最近在数据库处理的时候发现日期对比的时候没有返回正确的结果。 但是保存的时间实际上是相同的。 代码如下: if (!mlsPhoto.getDateUpdate().equals(photo.getDateUpdate())) { } 因为这里使用了 equals 方法。 问题解决 经过 Debug 后,这 2 个日期的纳秒数是不同的,查看下对象如下。 我们会发现其中一个对象有纳秒,一个对象没有。 但是 fastTime 是相同的。 如果使用 equals 那么这个方法比较的是毫秒,所以是不相等的。
HoneyMoose
2021/12/21
3.5K0
代码组件 | 我的代码没有else
前端大行组件化的当今,我们在写后端接口代码的时候还是按照业务思路一头写到尾吗?我们是否可以思索,「后端接口业务代码如何可以简单快速组件化?」,答案是肯定的,这就是「组合模式」的作用。
用户1093396
2020/10/29
1.2K0
代码组件 | 我的代码没有else
代码模板 | 我的代码没有else
抽象类里定义好算法的执行步骤和具体算法,以及可能发生变化的算法定义为抽象方法。不同的子类继承该抽象类,并实现父类的抽象方法。
用户1093396
2020/10/29
1K0
代码模板 | 我的代码没有else
构造函数没有返回值是怎么赋值的?
众所周知,在java里是不能给构造函数写返回值的,如果在低版本的编译器定义一个构造器写上返回值可能会报错,高版本里面他就是一个普通的方法。可是如果构造函数没有返回值,那么比如Test t = new Test()我们new一个对象的时候是怎么赋值的呢?
好好学java
2020/12/09
1.7K0
构造函数没有返回值是怎么赋值的?
构造函数没有返回值是怎么赋值的?
众所周知,在java里是不能给构造函数写返回值的,如果在低版本的编译器定义一个构造器写上返回值可能会报错,高版本里面他就是一个普通的方法。可是如果构造函数没有返回值,那么比如Test t = new Test()我们new一个对象的时候是怎么赋值的呢?
帅地
2020/09/28
1.7K0
构造函数没有返回值是怎么赋值的?
小程序没有返回按钮怎么办?
如果你发现自己的小程序页面没有返回按钮,请检查是不是用的wx.redirectTo(OBJECT)进行的跳转,如果是那就把它改成wx.navigateTo(OBJECT)就可以了. wx.navigateTo(OBJECT) 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。 wx.redirectTo(OBJECT) 关闭当前页面,跳转到应用内的某个页面。
李文杨
2018/04/17
2.3K0
无返回路径的文件上传
访问靶场一看,只有一个上传页面,而且可以直接上传马,但是没有返回路径,上传正常图片也不会又路径,这就很坑了。
字节脉搏实验室
2020/09/08
4K0
无返回路径的文件上传
如何编写没有bug的代码?
我记不了很多东西。像标准库中的函数和方法、参数位置、软件包名称,样板代码等等,都在我脑容量之外。
老九君
2018/09/21
8950
如何编写没有bug的代码?
Java构造函数没有返回值,是怎么赋值的?
众所周知,在java里是不能给构造函数写返回值的,如果在低版本的编译器定义一个构造器写上返回值可能会报错,高版本里面他就是一个普通的方法。可是如果构造函数没有返回值,那么比如Test t = new Test()我们new一个对象的时候是怎么赋值的呢?
程序员小猿
2021/01/20
2.1K0
Java构造函数没有返回值,是怎么赋值的?
包验证返回的错误代码
程序集标识的某些部分(名称、公钥令牌、区域性、可重定目标属性或版本)对于比较的双方都不匹配。
用户4268038
2022/01/09
1.8K0
vscode最新问题输入叹号没有代码提示不生成模板解决方法
好像是 更新了   输入html  选择第二个html:5就能生成模板了  用这个就好了
坚毅的小解同志的前端社区
2022/11/28
7020
vscode最新问题输入叹号没有代码提示不生成模板解决方法
链式调用 | 我的代码没有else
但是有一点直到被处理为止,代表最终只会被一个实际的业务对象执行了实际的业务逻辑,明显适用的场景并不多。但是除此之外,上面的那两点优势还是让人很心动,所以,为了适用于目前所接触的绝大多数业务场景,把概念进行了简单的调整,如下:
用户1093396
2020/10/29
1.7K0
链式调用 | 我的代码没有else
soap 返回xml 文件 soap 文件 webservice wsdl
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100557.html原文链接:
全栈程序员站长
2021/05/06
1.3K0
状态变换 | 我的代码没有else
「状态模式」比较简单,就是算法的选取取决于自己的内部状态。相较「策略模式」算法的选取由用户决策变成为内部状态决策,「策略模式」是用户(客户端)选择具体的算法,「状态模式」只是通过内部不同的状态选择具体的算法。
用户1093396
2020/10/28
8730
状态变换 | 我的代码没有else
订阅通知 | 我的代码没有else
虽然本文的题目叫做“订阅通知”,但是呢,本文却主要介绍「观察者模式」如何在真实业务场景中使用。是不是有些不理解?解释下:
用户1093396
2020/10/29
1.8K0
订阅通知 | 我的代码没有else
linux镜像文件没有gho,【iso文件中没有gho文件】iso变gho_iso文件里没有gho-系统城…
gho文件是ghost系统的克隆镜像,存储着系统分区的所有文件信息,可用于安装系统,有些U盘安装方法需要把ISO镜像中的gho文件拷贝到U盘,那么gho文件在哪里呢?ISO镜像中的gho文件是哪个呢?下面系统城小编就跟大家分析一下。
全栈程序员站长
2022/09/14
8.3K0
告别没有成长的烂代码
毕业后我就加入了一家跨境电商企业,至今我还清晰地记得,我第一次提交代码的时候,短短的 100 多行代码,被同事 review 出了 n 多问题,来来回回改了不下十几个版本才提交上去。我当时有很大的逆反心理,觉得有必要浪费这么多时间在如此细节的编码上吗?只要代码能用、能解决问题不就够了吗?
程序员 NEO
2023/09/26
1700
客户决策 | 我的代码没有else
「策略模式」比较简单,大家平常工作中应该经常使用到,所以本文作为复习,帮助大家温故知新。我们先来看下定义:
用户1093396
2020/10/28
9190
客户决策 | 我的代码没有else
vue 渲染HTML代码 后台返回HTML代码
实现:<span v-html='html'></span> 使用 v-html 赋值就可以了
onety码生
2018/11/21
27.1K2
点击加载更多

相似问题

将Java模块jar作为依赖项添加到Gradle项目中

10

将SWT作为Gradle依赖项导入

28

如何将gradle java项目作为依赖项添加到Android Studio

15

Gradle:添加依赖项

25

添加gradle依赖项

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文