Visual Studio 2019中Azure Web Job模板无.Net Core目标 需用控制台应用吗
问题解答
模板缺失原因说明
Visual Studio 2019 自带的 Azure WebJob 原生仅支持 .NET Framework,微软官方未为 .NET Core/.NET 5+ 提供专门的 WebJob 项目模板,因此找不到 .NET Core 目标选项属于正常情况,不属于环境配置问题。
单WebApp部署多WebJob的开发方案
你描述的场景完全可以从创建 .NET Core 控制台应用开始开发,这也是官方推荐的标准实现方式,具体操作逻辑如下:
- 每个 WebJob 对应一个独立的 .NET Core 控制台项目,同一解决方案下可创建多个控制台项目分别承载不同逻辑的 WebJob
- 给每个控制台项目安装
Microsoft.Azure.WebJobs.ExtensionsNuGet 包,按需额外安装对应触发器的扩展包(例如队列触发器需要安装Microsoft.Azure.WebJobs.Extensions.Storage) - 在项目入口
Program.cs中配置 WebJob 主机,基础示例代码如下:
using Microsoft.Extensions.Hosting; namespace CustomWebJob { class Program { static void Main(string[] args) { var builder = new HostBuilder(); builder.ConfigureWebJobs(config => { config.AddAzureStorageCoreServices(); // 按需添加其他触发器支持,比如队列/Blob触发器可添加 config.AddAzureStorage(); }); var host = builder.Build(); using (host) { host.Run(); } } } }
- 部署到同一WebApp时,将不同WebJob的编译产物分别放到
App_Data/jobs/[continuous/triggered]/[对应WebJob名称]目录即可,多个WebJob的目录互相独立,不会影响WebApp本身承载的其他业务 - 若使用Visual Studio直接发布,右键对应控制台项目选择「发布」,目标选「Azure」->「Azure WebJobs」,指定到目标WebApp即可,发布工具会自动处理目录结构,多个WebJob重复该操作发布到同一WebApp即可
注意事项
- 需确保WebApp的运行时版本与开发WebJob使用的.NET Core版本匹配
- 连续型WebJob和触发型WebJob要放置到对应名称的二级目录下,避免Azure无法识别
- WebJob的连接字符串、自定义参数等可以直接在所属WebApp的应用配置中添加,所有同WebApp下的WebJob都可以直接读取,无需单独配置
内容的提问来源于stack exchange,提问作者techno
相关产品推荐
相关产品推荐

