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

Azure Durable Function v2在门户及调试时不可见问题求助

解决Durable Functions无法显示的问题

1. 修复活动函数的触发器属性

你的SyncCatalogueSecutixDurable活动函数缺少**[ActivityTrigger]**属性,这是Functions Runtime识别活动函数的必要标记。修改代码如下:

[FunctionName("SyncCatalogueSecutixDurable")]
public string SyncCatalogueSecutixDurable(
    [ActivityTrigger] IDurableActivityContext context, // 添加ActivityTrigger参数
    ILogger log)
{
    // 原有逻辑保持不变
    var config = new AzureFunctionConfig();
    log.LogInformation("Initialisation moteur de synchronisation");
    var syncEngine = new SyncEngine(log, config);
    log.LogInformation("Début du traitement de synchronisation");
    try
    {
        syncEngine.Process<SxArticle>();            
        syncEngine.Process<SxCommande>();
        return "Success";
    }
    catch (Exception error)
    {
        log.LogError(error, $"Une erreur est survenue lors de la synchronisation: {error.Message}");
        return "Error";
    }
    finally
    {
        log.LogInformation("Fin du traitement de synchronisation");
    }
}

注:如果不需要传递参数,IDurableActivityContext可以保留,或者用[ActivityTrigger] string input(根据实际需求调整)。

2. 确认NuGet包安装正确

确保项目已安装适配.NET8的Durable Functions扩展包:

  • 包名:Microsoft.Azure.WebJobs.Extensions.DurableTask
  • 版本:至少2.13.0以上(推荐最新稳定版)

可以通过NuGet包管理器安装,或在.csproj中添加:

<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="2.16.0" />

3. 检查项目文件(.csproj)配置

确认项目文件包含以下关键配置:

<PropertyGroup>
  <TargetFramework>net8.0</TargetFramework>
  <AzureFunctionsVersion>v4</AzureFunctionsVersion>
  <FunctionsMetadataGenerator>Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.Generator, Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator</FunctionsMetadataGenerator>
</PropertyGroup>
  • AzureFunctionsVersion必须为v4(Durable Functions v2依赖此Runtime版本)
  • FunctionsMetadataGenerator确保正确生成functions.metadata文件

4. 清理并重建项目

删除项目目录下的bin和obj文件夹,然后重新生成项目。这可以解决缓存导致的元数据未更新问题。

5. 验证local.settings.json配置(调试场景)

调试时确保local.settings.json中配置了有效的存储账户连接字符串:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true", // 本地开发可以用Azurite模拟器
    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
  }
}

若未安装Azurite,需先安装并启动它,或使用真实的Azure存储账户连接字符串。

6. Azure门户部署后的检查

部署完成后:

  1. 进入函数应用的配置页面,确认FUNCTIONS_WORKER_RUNTIME设置为dotnet,FUNCTIONS_EXTENSION_VERSION为~4
  2. 检查存储账户配置是否正确,Durable Functions需要依赖存储来跟踪实例状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 21:18:15