CngKey System.Security.Cryptography.CryptographicException 系统找不到Azure上指定的文件
CngKey System.Security.Cryptography.CryptographicException The system cannot find the file specified on Azure
我尝试从这个代码生成密钥
CngKey key = CngKey.Import(Convert.FromBase64String(privateKey), CngKeyBlobFormat.Pkcs8PrivateBlob);
它在本地运行良好,但当我在我的 Azure 应用服务中部署时。
它给了我这个错误:
System.Security.Cryptography.CryptographicException: 系统找不到指定的文件。
在 System.Security.Cryptography.NCryptNative.ImportKey(SafeNCryptProviderHandle 提供商,Byte[] keyBlob,字符串格式)
在 System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, String curveName, CngKeyBlobFormat 格式, CngProvider 提供者)
我在配置中添加 WEBSITE_LOAD_USER_PROFILE 值为“1”,但没有任何区别。
谢谢
如果 WEBSITE_LOAD_USER_PROFILE = 1
对您不起作用。这是同一问题的解决方法:
- 在 portal.azure.com
中打开您的 Azure 应用服务(Azure 网站)边栏选项卡
- 转到“应用程序设置”页面
- 滚动到应用程序设置
- 添加一个新的输入键:WEBSITE_LOAD_CERTIFICATES,并为其提供一个虚拟(伪造的、随机生成的)值。
查看以下类似问题的链接以供参考:
我通过在 Azure 配置中添加 WEBSITE_LOAD_USER_PROFILE = 1 将计划服务从免费升级到基本。
问题是当应用服务免费时它使用共享 VM 但当我将我的应用服务定价升级到基本时它使用私有 VM。
这个问题不仅出现在 Azure 上,我的 VPS 也遇到了同样的问题,这个答案救了我的命:
X509Certificate Constructor Exception
干杯,
尼克
我尝试从这个代码生成密钥
CngKey key = CngKey.Import(Convert.FromBase64String(privateKey), CngKeyBlobFormat.Pkcs8PrivateBlob);
它在本地运行良好,但当我在我的 Azure 应用服务中部署时。 它给了我这个错误:
System.Security.Cryptography.CryptographicException: 系统找不到指定的文件。 在 System.Security.Cryptography.NCryptNative.ImportKey(SafeNCryptProviderHandle 提供商,Byte[] keyBlob,字符串格式) 在 System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, String curveName, CngKeyBlobFormat 格式, CngProvider 提供者)
我在配置中添加 WEBSITE_LOAD_USER_PROFILE 值为“1”,但没有任何区别。
谢谢
如果 WEBSITE_LOAD_USER_PROFILE = 1
对您不起作用。这是同一问题的解决方法:
- 在 portal.azure.com 中打开您的 Azure 应用服务(Azure 网站)边栏选项卡
- 转到“应用程序设置”页面
- 滚动到应用程序设置
- 添加一个新的输入键:WEBSITE_LOAD_CERTIFICATES,并为其提供一个虚拟(伪造的、随机生成的)值。
查看以下类似问题的链接以供参考:
我通过在 Azure 配置中添加 WEBSITE_LOAD_USER_PROFILE = 1 将计划服务从免费升级到基本。
问题是当应用服务免费时它使用共享 VM 但当我将我的应用服务定价升级到基本时它使用私有 VM。
这个问题不仅出现在 Azure 上,我的 VPS 也遇到了同样的问题,这个答案救了我的命:
X509Certificate Constructor Exception
干杯, 尼克