Azure Webjobs SDK HttpTrigger本地运行默认访问URL是多少?
问题原因
你当前的主机配置仅加载了Azure WebJobs的核心运行时,没有启动HTTP服务器监听本地端口,日志中出现的NullListener也验证了这一点:没有实际的HTTP监听器在运行,自然无法响应任何localhost的HTTP请求。
修复步骤
1. 修改Program启动配置
你需要给通用主机添加ASP.NET Core Kestrel服务器的配置,才能启动HTTP监听,修改后的CreateHostBuilder代码如下:
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) // 新增:配置Web服务器,指定监听端口 .ConfigureWebHostDefaults(webBuilder => { // 可自定义监听端口,这里默认用5000 webBuilder.UseKestrel() .UseUrls("http://localhost:5000"); }) .ConfigureWebJobs(b => { b.AddAzureStorageCoreServices() .AddAzureStorage() .AddHttp(); }) .ConfigureLogging((context, b) => { b.SetMinimumLevel(LogLevel.Debug); b.AddConsole(); }) .ConfigureAppConfiguration(b => { b.AddCommandLine(args); }) .UseConsoleLifetime();
2. 确认依赖包
确保项目文件中已经引用了以下必要包:
Microsoft.Azure.WebJobs.Extensions.HttpMicrosoft.AspNetCore.App(.NET Core 3.0+ 直接添加框架引用即可)
本地访问地址
修复配置重新启动后,日志会输出监听地址和函数的可访问路径,你的函数配置对应访问地址为:GET http://localhost:5000/api/httptriggertest
如果需要去掉默认的api前缀,可以在AddHttp配置中修改:b.AddHttp(o => o.RoutePrefix = "");,修改后访问地址为http://localhost:5000/httptriggertest
验证方式
启动后直接在浏览器或用curl、Postman访问上面的地址,会收到返回值HttpTriggerTest,同时控制台会打印收到请求的日志。
内容的提问来源于stack exchange,提问作者mslot
相关产品推荐
相关产品推荐

