You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Microsoft.Azure.Functions.Worker.Sdk至1.16.0+出现无作业函数警告如何修复?

解决Azure Functions独立进程模式升级Worker.Sdk 1.16.0+后无作业函数的问题

核心原因

从1.16.0版本开始,Microsoft.Azure.Functions.Worker.Sdk对独立进程模式的函数注册逻辑做了调整,旧模板的代码结构不再适配新SDK的要求。

修改步骤

1. 更新项目文件(.csproj)

确保项目文件中包含以下配置,明确指定函数入口程序集及依赖版本:

<PropertyGroup>
  <TargetFramework>net6.0</TargetFramework>
  <AzureFunctionsVersion>v4</AzureFunctionsVersion>
  <OutputType>Exe</OutputType>
  <ImplicitUsings>enable</ImplicitUsings>
  <Nullable>enable</Nullable>
  <!-- 新增:指定函数所在程序集,让SDK能正确识别 -->
  <FunctionsWorkerAssembly>$(AssemblyName)</FunctionsWorkerAssembly>
</PropertyGroup>

<ItemGroup>
  <PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.20.0" />
  <PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.16.4" />
  <PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.1.0" />
</ItemGroup>

2. 调整Program.cs启动逻辑

显式配置函数主机并添加HTTP扩展支持:

using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults()
    .ConfigureServices(services =>
    {
        services.AddHttpClient();
        services.AddHttpContextAccessor();
    })
    .Build();

host.Run();

3. 确认函数类和方法的访问修饰符

保证HTTP触发函数的类和方法均为public,示例如下:

using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Http;
using Microsoft.Extensions.Logging;

public class HttpTriggerFunction
{
    private readonly ILogger<HttpTriggerFunction> _logger;

    public HttpTriggerFunction(ILogger<HttpTriggerFunction> logger)
    {
        _logger = logger;
    }

    [Function("HttpTrigger")]
    public HttpResponseData Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequestData req)
    {
        _logger.LogInformation("C# HTTP trigger function processed a request.");

        var response = req.CreateResponse(System.Net.HttpStatusCode.OK);
        response.Headers.Add("Content-Type", "text/plain; charset=utf-8");
        response.WriteString("Welcome to Azure Functions!");

        return response;
    }
}

4. 清理并重新构建项目

执行以下命令确保依赖和构建输出为最新状态:

dotnet clean
dotnet restore
dotnet build

验证

启动函数应用后,访问HTTP触发端点确认API正常响应,同时检查控制台输出,No job functions found警告应不再出现。

内容的提问来源于stack exchange,提问作者kumkee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 14:24:53