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

Azure Function通过Bicep部署后未正确配置.NET版本及Runtime版本

问题分析与修复方案

你的Bicep代码中存在两个关键问题,导致.NET 8 Isolated和Runtime版本未按预期生效:

  1. netFrameworkVersion: 'v8.0'仅适用于**.NET In-Process**模式的Function App,对Isolated Worker模式无效,甚至会引发配置冲突。
  2. 若使用Linux应用服务计划,未在kind字段中指定linux标识,会默认部署为Windows环境,导致运行时配置不匹配。

针对Windows应用服务计划的修正代码

resource azfun 'Microsoft.Web/sites@2022-09-01' = {
  name: 'functionName'
  location: location
  kind: 'functionapp'
  properties: {
    serverFarmId: appServicePlann.id
    siteConfig: {
      alwaysOn: true
      // 用applicationStack配置Isolated运行时,替代无效的netFrameworkVersion
      applicationStack: {
        currentStack: 'dotnet-isolated'
        dotnetVersion: '8.0'
      }
      appSettings: [
        {
          name: 'FUNCTIONS_WORKER_RUNTIME'
          value: 'dotnet-isolated'
        }
        {
          name: 'FUNCTIONS_EXTENSION_VERSION'
          value: '~4'
        }
        // 可选:显式指定Worker的.NET版本,避免歧义
        {
          name: 'DOTNET_VERSION'
          value: '8.0'
        }
      ]
    }
    httpsOnly: true
  }
  identity: {
    type: 'UserAssigned'
    userAssignedIdentities: {
      '${userManagedIdentity.id}': {}
    }
  }
}

针对Linux应用服务计划的修正代码

resource azfun 'Microsoft.Web/sites@2022-09-01' = {
  name: 'functionName'
  location: location
  kind: 'functionapp,linux' // 必须添加linux标识,明确部署为Linux环境
  properties: {
    serverFarmId: appServicePlann.id
    siteConfig: {
      alwaysOn: true
      // Linux环境通过linuxFxVersion指定Isolated运行时版本
      linuxFxVersion: 'DOTNET-ISOLATED|8.0'
      appSettings: [
        {
          name: 'FUNCTIONS_WORKER_RUNTIME'
          value: 'dotnet-isolated'
        }
        {
          name: 'FUNCTIONS_EXTENSION_VERSION'
          value: '~4'
        }
      ]
    }
    httpsOnly: true
  }
  identity: {
    type: 'UserAssigned'
    userAssignedIdentities: {
      '${userManagedIdentity.id}': {}
    }
  }
}

核心注意事项

  • 彻底移除netFrameworkVersion配置:该字段仅对In-Process模式生效,Isolated模式下由applicationStack(Windows)或linuxFxVersion(Linux)控制运行时。
  • 保留FUNCTIONS_WORKER_RUNTIME: 'dotnet-isolated':这是区分In-Process和Isolated模式的核心标识,必须正确设置。
  • FUNCTIONS_EXTENSION_VERSION: '~4'是正确的:Azure Functions Runtime v4完全支持.NET 8 Isolated Worker。
  • Linux环境必须在kind中声明linux:否则会默认部署为Windows环境,导致运行时配置不匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 18:34:53