GoogleCredential.FromFile本地控制台卡顿报错,虚拟机及WebAPI正常求解决
解决方案
针对你遇到的本地控制台程序加载Google服务账号凭证时抛出System.Security.Cryptography.CngKeyLite初始化异常的问题,可尝试以下几种解决方法:
强制使用传统RSA加密实现
CngKeyLite依赖Windows CNG加密库,部分环境下控制台程序可能因权限或上下文问题无法正常调用。可以通过配置强制使用旧版的RSACryptoServiceProvider:- 代码方式:在调用
GoogleCredential.FromFile之前添加:AppContext.SetSwitch("System.Security.Cryptography.UseLegacyRsa", true); - 项目配置方式:在项目的
.csproj文件中添加:<ItemGroup> <RuntimeHostConfigurationOption Include="System.Security.Cryptography.UseLegacyRsa" Value="true" /> </ItemGroup>
- 代码方式:在调用
检查Windows加密服务状态
本地Cryptographic Services未正常运行可能导致加密API调用失败:- 按下Win+R,输入
services.msc打开服务管理器 - 找到Cryptographic Services,确认服务状态为“正在运行”,启动类型设为“自动”
- 若服务未启动,右键选择“启动”;若已启动,尝试重启服务
- 按下Win+R,输入
提升控制台程序运行权限
本地控制台程序可能因权限不足无法访问加密资源:右键控制台程序,选择“以管理员身份运行”,测试是否仍抛出异常。更新Google Auth相关依赖库
你使用的Google.Cloud.SecretManager.V1 1.5.0对应的Google.Apis.Auth版本可能存在兼容性问题,建议更新到最新稳定版(如Google.Apis.Auth 1.60.0及以上),新版本通常会修复加密相关的环境适配问题。验证服务账号密钥文件
重新下载Google云平台的服务账号JSON密钥文件,替换本地的旧文件,确保文件未损坏、当前用户有读取权限。
内容的提问来源于stack exchange,提问作者Guy
相关产品推荐
相关产品推荐

