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

.NET6升级至.NET8后Azure Functions隔离模型启动报错求解决

解决Azure Functions隔离模型"No job functions found"问题

1. 移除冲突的NuGet包

你的.csproj中仍保留着进程内模型专属的Microsoft.NET.Sdk.Functions包,它会与隔离模型的核心依赖Microsoft.Azure.Functions.Worker产生冲突,必须彻底移除:

  • 从.csproj文件中删除<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.6.0" />这一行
  • 执行dotnet restore命令重新还原依赖

2. 确认Program.cs入口配置

隔离模型需要显式初始化Worker宿主,确保你的Program.cs包含以下核心代码:

using Microsoft.Extensions.Hosting;

var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults()
    .Build();

host.Run();

3. 修正函数特性与参数适配

隔离模型的函数定义规范与进程内模型不同,需调整函数代码:

  • 将进程内的[FunctionName("YourFunction")]替换为隔离模型的[Function("YourFunction")]
  • Http函数需使用HttpRequestData替代HttpRequest作为参数,返回类型改为HttpResponseData,示例:
[Function("SampleHttpFunction")]
public async Task<HttpResponseData> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get")] HttpRequestData req)
{
    var response = req.CreateResponse(System.Net.HttpStatusCode.OK);
    await response.WriteStringAsync("Isolated worker function executed");
    return response;
}

4. 调整Worker包版本到兼容.NET8的稳定版

你当前使用的Microsoft.Azure.Functions.Worker 2.0.0是针对.NET9的预览版本,与.NET8不兼容,建议降级到.NET8适配的稳定版本(如1.20.1),同时同步升级相关扩展包到对应兼容版本。

5. 验证host.json配置

确保host.json使用隔离模型的版本配置:

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      }
    }
  }
}

6. 清理并重新构建项目

  • 删除项目根目录下的bin和obj文件夹
  • 执行dotnet clean和dotnet build命令重新构建项目

内容的提问来源于stack exchange,提问作者Kasun Sameera Wickramasignhe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:53:27