如何通过Git将Azure WebJob与.NET Core Web App一起部署?

Jar*_*gon 16 git asp.net-mvc azure kudu azure-webjobs

我认为这将是一个相当简单的任务,并且有相当多的文档,但我没有任何运气,并假设它几乎都过时了.

我有一段时间以来一直在开发的.NET Core MVC 6 Web App,需要在Azure上为它设置一个WebJob.我想使用Azure提供的应用程序已经在使用的持续部署系统将其与应用程序一起部署.根据Kudu文件,它是可能的:

https://github.com/projectkudu/kudu/wiki/Web-Jobs#deploying-net-console-webjobs-alongside-an-aspnet-application

哪个州:

这在直接从Visual Studio(WebDeploy)部署或通过git部署时都适用.

它引用了这个链接(https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-deploy-webjobs/),我一直试图遵循这个链接但没有成功.

我有最新版本的Visual Studio 2015,.NET Core 1.0.0和Tools以及Azure SDK.

显而易见的第一件事是我没有Azure文档屏幕截图中显示的脚手架选项,并且在找不到任何遗漏的依赖关系后,我试图按照描述手动设置它.

即使将所需文件放在指定的位置(webjobs-list.jsonwebjob-publish-settings.json)并为我的项目配置它们并添加Microsoft.Web.WebJobs.Publish到WebJob项目之后,Kudu也没有通过连续部署系统找到WebJob.

我已经根据我在那里发现的文档尝试了几种方法和变体,但我无法让它工作,所有其他SO问题都是一年之久.

有谁知道我做错了什么?使用最新版本的.NET Core MVC,这是否仍然可行?

Fab*_*bio 7

WebJobs的文件存储在"App_Data/jobs/continuous"或"App_Data/jobs/triggered"文件夹下,因此我可以用来部署Web App和WebJob的一种方法是在构建期间手动复制这些文件夹所需的所有WebJobs文件时间.我认为这将适合VS工具更新.

我的解决方案与您的解决方案略有不同,因为我使用Visual Studio Team Services构建并将我的应用程序发布到Azure,但概念是相同的.您可以在Visual Studio中使用post build事件来运行将这些文件复制到jobs'文件夹的脚本.

以下是我在VSTS构建定义中配置的步骤:

  1. 命令行任务: 工具: dotnet 参数:恢复

  2. Visual Studio构建任务: 解决方案:**\MyApp.sln 平台: $(BuildPlatform) 配置: $(BuildConfiguration) Visual Studio版本: Visual Studio 2015

  3. 命令行任务: 工具: dotnet 参数: publish -c $(BuildConfiguration)

  4. 命令行任务: 工具: dotnet 参数: publish -c $(BuildConfiguration)$(Build.SourcesDirectory)\ src\MyApp.Jobs\project.json

  5. 复制文件任务(这是技巧): 源文件夹: src/MyApp.Jobs/bin/$(BuildConfiguration)/netcoreapp1.0/publish/ 内容:** 目标文件夹: src/MyApp.Web/bin/$(BuildConfiguration )/netcoreapp1.0/publish/App_Data/jobs/triggered/MyJobName/

  6. 归档文件任务: 要归档的根文件夹(或文件): src/MyApp.Web/bin/$(BuildConfiguration)/netcoreapp1.0/publish/ 前缀根文件夹名称到归档路径:未选中 归档类型: zip 要创建的归档文件: website.zip 替换现有存档:已选中

  7. 复制文件任务:源文件夹: 内容:**/*.zip 目标文件夹: $(Build.ArtifactStagingDirectory)

  8. 发布构建工件任务: 路径执行发布: $(Build.ArtifactStagingDirectory) 工件名称: drop 工件类型:服务器