如何将asp.net核心web作业发布到azure app服务

How to publish asp.net core web job to azure app service

我已经开始使用ASP.NET Core 2 Web应用程序,并且可以使用Web Deploy从Visual Studio将其发布到应用程序服务。

我已经创建了新的clean.net core 2控制台应用程序。我可以将它作为webjob上传并使用Azure门户运行,但如何从本地命令行或Visual Studio发布它?

基本上,我不关心它是与Web应用程序一起发布还是作为独立的发布。

编辑:我通过右键单击项目并选择文档中的发布(而不是作为Azure WebJob发布),设法获得了发布对话框。但我还是不知道是怎么搞的。安装Azure SDK?添加webjob-publish-settings.json?正在添加setting.job?


使用Azure门户将.NET核心发布为webjob:

正如你所知道的:

webjob查找特定的文件类型,例如(.cmd,.bat,.exe等…)要运行.NET核心控制台应用程序,请使用dotnet命令

因此,您需要创建一个扩展名为webjob的文件来执行该文件。

1.您可以创建.NET核心Conosole应用程序。运行之后,您的projectname/bin/debug/netcoreapp2.0中将包含以下文件

enter image description here2.在它下面创建一个run.cmd文件。run.cmd的内容如下:

1
2
3
@echo off

dotnet ConsoleApp7.dll

3.要将.NET核心控制台应用程序部署到Azure应用程序服务Web应用程序Web作业,请访问Azure门户并导航到将在其中承载Web作业的Azure应用程序服务。单击WebJobs链接和添加按钮。enter image description here4.上传netcoreapp2.0.zip

enter image description here

5.一旦webjob成功上传,它将在webjob blade中呈现。点击它,你会看到运行按钮。

enter image description here6.当您使用writeline()方法将输出写入控制台时,它将显示在kudu/scm上的运行详细信息窗口中。

enter image description here

有关更多详细信息,您可以参考本文和本文。

更新:(使用命令行发布)

1.首先,从Azure门户下载您的webapp发布设置文件。enter image description here

2.准备您创建的.zip文件夹。

正如大卫所说,您可以使用wawsdeploy通过命令行发布webjob。您可以使用此链接下载wawsdeploy。

3.然后转到wawsdeploy/bin/debug文件夹打开本地命令行。尝试使用以下命令部署Web作业:

1
WAWSDeploy.exe DotNetCoreWebJobSample.zip [WEBSITE_NAME].PublishSettings /t app_data\jobs\triggered\DotNetCoreWebJobSample /v

目标目录将是app_data\jobs\triggered\[WEBJOB_NAME]。如果此Web作业是连续运行的,请将触发的替换为连续。

注意:您可以将wawsdeploy.exe和publish设置文件和.zip放到一个文件夹中。如果没有,您应该给出发布设置和.zip文件的完整路径。以便成功发布WebJob。

有关wawsdeploy的更多详细信息,请参阅本文。


确保CSproj包含正确的SDK:

2

然后右键单击Visual Studio中的项目并单击"发布",选择"Microsoft Azure应用程序服务",您将看到WebJob发布选项:enter image description here

还要注意,您应该使用Microsoft.NET.Sdk而不是microsoft.net.sdk.web

如果您使用的是Microsoft.NET.SDK.Web,则Visual Studio假定您部署到的是网站而不是WebJob。网站和webjob的发布对话框略有不同。例如,对于webjob项目,可以指定webjob名称。

您可能对以下内容感兴趣:

  • github/aspnet/web sdk/issue:webjob publishing for microsoft.net.sdk.web
  • github/aspnet/mvc/issue:如何将控制台应用发布为Web作业而不是Web应用


有一篇关于使用Visual Studio-Azure应用程序服务开发和部署WebJobs的伟大文章,涵盖了您的问题。

基本上,在安装了先决条件(取决于您的vs版本)之后,您可以右键单击解决方案资源管理器中的控制台应用程序项目,然后单击发布为Azure WebJob。