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

部署Azure Function报Error calling sync triggers错误求助

问题说明
  • 运行环境:项目目标框架为netcoreapp3.1,Azure Functions版本为v3
  • 初始故障:运行时抛出Could not load file or assembly System.IdentityModel.Tokens.Jwt程序集加载错误
  • 临时操作:为修复上述错误,在csproj的PropertyGroup节点添加<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>配置,添加后应用无法正常部署
  • 部署执行命令:
func azure functionapp publish <app-name>
  • 部署返回错误信息:
Azure.Functions.Cli.Common.CliException: Error calling sync triggers (BadRequest). Request ID = '8352b514-e606-4316-b316-9ad47ad1e3b5'.
   at Azure.Functions.Cli.Helpers.RetryHelper.Retry(Func`1 func, Int32 retryCount, TimeSpan retryDelay, Boolean displayError) in D:\a\_work\1\s\src\Azure.Functions.Cli\Helpers\RetryHelper.cs:line 27
   at Azure.Functions.Cli.Actions.AzureActions.PublishFunctionAppAction.SyncTriggers(Site functionApp) in D:\a\_work\1\s\src\Azure.Functions.Cli\Actions\AzureActions\PublishFunctionAppAction.cs:line 520
   at Azure.Functions.Cli.Actions.AzureActions.PublishFunctionAppAction.PublishFunctionApp(Site functionApp, GitIgnoreParser ignoreParser, IDictionary`2 additionalAppSettings) in D:\a\_work\1\s\src\Azure.Functions.Cli\Actions\AzureActions\PublishFunctionAppAction.cs:line 504
   at Azure.Functions.Cli.Actions.AzureActions.PublishFunctionAppAction.RunAsync() in D:\a\_work\1\s\src\Azure.Functions.Cli\Actions\AzureActions\PublishFunctionAppAction.cs:line 191
   at Azure.Functions.Cli.ConsoleApp.RunAsync[T](String[] args, IContainer container) in D:\a\_work\1\s\src\Azure.Functions.Cli\ConsoleApp.cs:line 64
故障原因

<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>配置的作用是关闭Azure Functions默认的发布清理逻辑,发布时会全量上传本地输出目录的所有依赖文件,包括Functions宿主环境已经自带的系统程序集。上传的第三方版本程序集和宿主自带程序集版本冲突时,服务端同步触发器的校验流程就会失败,返回400 BadRequest错误,这种方式不适合用来解决单个程序集的加载问题。

解决步骤
  • 第一步:移除csproj中添加的<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>配置,将该值显式设为false,恢复默认的发布清理逻辑。
  • 第二步:正规修复System.IdentityModel.Tokens.Jwt程序集加载错误,不要依赖跳过发布清理的偏方:
    1. 为项目安装和netcoreapp3.1、Azure Functions v3兼容的JWT相关类库版本,最高不要超过6.32.x版本,过高版本依赖的底层组件和当前运行时不兼容,在csproj中添加以下包引用:
    <ItemGroup>
      <PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.32.3" />
      <PackageReference Include="Microsoft.IdentityModel.Tokens" Version="6.32.3" />
      <PackageReference Include="Microsoft.IdentityModel.Logging" Version="6.32.3" />
    </ItemGroup>
    
    1. 清理本地项目的bin、obj目录,执行dotnet restore重新还原所有依赖,避免本地缓存的旧版本dll引发冲突。
  • 第三步:本地执行func start启动函数实例,确认JWT程序集加载错误已经消失,功能运行正常。
  • 第四步:清理Azure端函数应用的旧文件残留:登录Azure门户进入对应函数应用,打开Kudu控制台,清空site/wwwroot目录下的所有旧发布文件,再重新执行func azure functionapp publish <app-name>命令完成部署。

补充说明:Azure Functions v3已经结束官方支持,条件允许的情况下建议升级到v4 LTS长期支持版本,可从根源上规避大量netcoreapp3.1相关的依赖兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 03:51:20