拥有一个用NodeJS编写的Azure持久函数应用程序。函数正在部署到Azure,但由于以下错误,无法在VSCode中本地调试它们。我不明白为什么我要在我的应用程序中得到一个.NET核心错误。
"System.Security.Cryptography.CryptographicException
MS_FUNCTION_LOGS 2、ErrorOccuredDuringStartupOperation、Host.Startup、Host.Startup:试图加密提供的数据时发生了错误。有关更多信息,请参考内部异常。--> System.InvalidOperationException :密钥环不包含有效的默认保护密钥。由于禁用了密钥的自动生成,数据保护系统无法创建新密钥。
在Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider.CreateCacheableKeyRingCore(DateTimeOffset now,IKey keyJustAdded)
(现在在Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider.Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.ICacheableKeyRingProvider.GetCacheableKeyRing(DateTimeOffset )
在Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider.GetCurrentKeyRingCore(DateTime utcNow,布尔forceRefresh)
在Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider.GetCurrentKeyRing()
在Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.Protect(Byte[]明文中)内部异常的结束
在Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.Protect(Byte[] (明文)
在Microsoft.AspNetCore.DataProtection.DataProtectionCommonExtensions.Protect(IDataProtector保护器,字符串明文)
(在Microsoft.Azure.WebJobs.Script.WebHost.DataProtectionKeyValueConverter.WriteValue(Key key) D:\a\1\s\src\WebJobs.Script.WebHost\Security\KeyManagement\DataProtectionKeyValueConverter.cs : 59
(在Microsoft.Azure.WebJobs.Script.WebHost.KeyValueConverterFactoryExtensions.WriteKey(IKeyValueConverterFactory工厂,键)在D:\a\1\s\src\WebJobs.Script.WebHost\Security\KeyManagement\KeyValueConverterFactoryExtensions.cs : 23,在Microsoft.Azure.WebJobs.Script.WebHost.SecretManager.CreateKey(String名称,字符串秘密)在D:\a\1\s\src\WebJobs.Script.WebHost\Security\KeyManagement\SecretManager.cs : 608
( Microsoft.Azure.WebJobs.Script.WebHost.SecretManager.GenerateKey(String名称) at D:\a\1\s\src\WebJobs.Script.WebHost\Security\KeyManagement\SecretManager.cs : 601
Microsoft.Azure.WebJobs.Script.WebHost.SecretManager.GenerateHostSecrets() at D:\a\1\s\src\WebJobs.Script.WebHost\Security\KeyManagement\SecretManager.cs : 494
异步Microsoft.Azure.WebJobs.Script.WebHost.SecretManager.GetHostSecretsAsync() at D:\a\1\s\src\WebJobs.Script.WebHost\Security\KeyManagement\SecretManager.cs : 97
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
(在异步Microsoft.Azure.WebJobs.Script.WebHost.DefaultScriptWebHookProvider.GetOrCreateExtensionKey(String extensionName) at D:\a\1\s\src\WebJobs.Script.WebHost\WebHooks\DefaultScriptWebHookProvider.cs : 74
在启动窗口或ubuntu环境上的调试时,也会发生同样的错误。
Azure函数核心工具核心工具版本: 3.0.3904函数运行时版本: 3.3.1.0
local.settings.json详细信息:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "node",
"BlobStorageConnection": "UseDevelopmentStorage=true",
"BlobStorageAccountKey": "",
"CONTAINER_NAME": "downloads"
}
}是否有一种方法可以改变某些配置或平面,以启用密钥生成和密码密钥的自动刷新,从而使系统能够自行完成此操作,而不需要开发人员进行干预?
找到类似的question on stack overflow,但不确定在何处指定存储帐户详细信息,因为我的存储设置为本地模拟器。
谢谢
发布于 2021-12-30 05:51:40
我将Azure Functions Core Tools版本升级为4.0.3971。
并将"AzureWebJobsSecretStorageType": "files"添加到local.settings.json文件中。对我来说很管用。

https://stackoverflow.com/questions/70453555
复制相似问题