【Azure Function App】Azure Function 從.Net6 升級到 .Net8 後 Function出現執行時版本錯誤

路边两盏灯發表於2024-12-09

問題描述

Azure Function 從.NET6 升級到 .NET8 後 Function出現執行時版本錯誤

問題解答

因為Azure Function在使用.NET6時,預設使用的為程序內模型(簡單來講:程序內模型就是應用執行在w3wp.exe 中,而獨立程序模型是單獨的 dotnet.exe 程序)。

【Azure Function App】Azure Function 從.Net6 升級到 .Net8 後 Function出現執行時版本錯誤

而升級到.NET8之後,需要指定 FUNCTIONS_INPROC_NET8_ENABLED 值為 1。

根據以下操作步驟修改後,.NET 8 Function 執行正常。

更新到以 .NET 8 為目標
使用程序內模型的應用可以按照本部分中概述的步驟以 .NET 8 為目標。 但是,如果選擇執行此選項,則仍應在 2026 年 11 月 10 日結束對程序內模型的支援之前開始規劃遷移到獨立工作器模型。

許多應用都可以在 Azure 中更改函式應用的配置,而無需更新程式碼或重新部署。 若要使用程序內模型執行 .NET 8,需要三個配置:

  • 應用程式設定 FUNCTIONS_WORKER_RUNTIME 必須使用值“dotnet”進行設定。
  • 必須使用值“~4”設定應用程式設定 FUNCTIONS_EXTENSION_VERSION。
  • 必須使用值“1”設定應用程式設定 FUNCTIONS_INPROC_NET8_ENABLED。
  • 必須更新堆疊配置以引用 .NET 8。

參考資料

使用 Azure Functions 開發 C# 類庫函式 : https://learn.microsoft.com/zh-cn/azure/azure-functions/functions-dotnet-class-library?tabs=v4%2Ccmd#updating-to-target-net-8

相關文章