本地启动Azure Bot函数时遇"Failed to decrypt settings..."错误
解决Azure Function本地调试"Failed to decrypt settings..."错误
我之前调试Azure Function Bot的时候也碰到过一模一样的问题,给你几个亲测有效的解决思路:
重置local.settings.json的加密状态
本地的local.settings.json如果被Azure Functions Core Tools自动加密过,换机器或者切换用户后就会触发解密失败。你可以直接修改项目根目录下的这个文件:- 确保里面有
"IsEncrypted": false字段,没有的话手动加上 - 如果文件内容已经是加密后的乱码,干脆直接删掉,重新手动创建一个明文版本,把需要的配置项填进去
示例明文配置结构:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "你的存储连接字符串", "FUNCTIONS_WORKER_RUNTIME": "dotnet", // Bot相关的其他配置项 } }- 确保里面有
检查bin目录下的配置文件
项目构建后会把local.settings.json复制到bin目录,有时候这个复制后的文件会被自动加密。你可以打开bin目录里的同名文件看看,如果内容是加密状态,直接把根目录下的明文版本复制过去覆盖掉。更新Azure Functions Core Tools
旧版本的Core Tools经常会有加密解密的兼容性bug,打开PowerShell执行npm install -g azure-functions-core-tools@4(如果是用npm安装的),或者直接去官网下载最新版安装包更新,之后再重启调试试试。清理项目缓存后重新构建
右键项目选择「清理」,完成后再选择「生成」。有时候旧的构建缓存会导致配置文件异常,清理后重新生成能确保bin目录下的配置是最新的明文版本。指定调试时的配置文件路径
偶尔调试器会误加载其他位置的加密配置,你可以在项目的调试设置里,确认指定的local.settings.json路径是项目根目录下的明文文件,而不是bin目录里的加密版本。
内容的提问来源于stack exchange,提问作者Michael12345
相关产品推荐
相关产品推荐

