Azure Function使用Snowflake .NET Driver密钥认证报错问题咨询
Snowflake .NET Driver对.NET Core的兼容性说明
Snowflake官方.NET Driver完全支持.NET Core 3.1及以上版本,你的运行环境符合驱动的兼容要求,该问题和框架本身的兼容性无关。
错误引发原因
你遇到的System.IdentityModel.Tokens.Jwt程序集加载失败问题,是Azure Functions .NET Core 3.1运行时的依赖版本冲突导致的,具体逻辑如下:
- 密钥对认证模式需要生成JWT令牌,你使用的Snowflake .NET Driver版本依赖
System.IdentityModel.Tokens.Jwt6.10.2.0版本完成该逻辑 - .NET Core 3.1版本的Azure Functions运行时会内置加载固定版本的
System.IdentityModel.Tokens.Jwt库,若你的项目没有显式指定依赖版本,就会出现驱动所需版本和运行时加载版本不匹配的情况,最终抛出找不到指定程序集的错误 - 你在.NET Framework 4.7.2控制台应用中未复现该问题,是因为控制台应用没有Azure Functions运行时的内置依赖限制,NuGet安装的对应版本依赖可以被正常加载。
解决方案
可任选以下一种方式修复问题:
- 直接在你的Azure Functions项目中显式安装NuGet包
System.IdentityModel.Tokens.Jwt,版本指定为6.10.2,和驱动依赖的版本完全对齐 - 若项目中其他组件需要更高版本的该库,可在项目配置中添加程序集绑定重定向规则,将所有版本的
System.IdentityModel.Tokens.Jwt访问请求重定向到项目实际安装的版本 - 升级Snowflake .NET Driver到最新稳定版,新版驱动已适配更高版本的
System.IdentityModel.Tokens.Jwt依赖,也可避免版本冲突问题
内容的提问来源于stack exchange,提问作者LeoPinheiro
相关产品推荐
相关产品推荐

