首页 > 解决方案 > 为什么我可以加密 web.config 但不能在同一个盒子上解密它?Error is 参数不正确

问题描述

我收到一个错误,我可以加密 web.config 文件但不能解密它。例如,我在 web.config 中有明文连接字符串,并使用以下命令对其进行加密:

C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -pef "connectionStrings" c:\inetpub\wwwroot\App
Microsoft (R) ASP.NET RegIIS version 4.0.30319.0
Administration utility to install and uninstall ASP.NET on the local machine.
Copyright (C) Microsoft Corporation.  All rights reserved.
Encrypting configuration section...
Succeeded!

当我立即尝试解密它时,我收到此错误:

C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -pdf "connectionStrings" c:\inetpub\wwwroot\App
Microsoft (R) ASP.NET RegIIS version 4.0.30319.0
Administration utility to install and uninstall ASP.NET on the local machine.
Copyright (C) Microsoft Corporation.  All rights reserved.
Decrypting configuration section...
Failed to decrypt using provider 'RsaProtectedConfigurationProvider'. Error message from the provider: The parameter is incorrect.
 (c:\inetpub\wwwroot\IdentityManager\web.config line 9)

The parameter is incorrect.

Failed!

我尝试删除并重新创建 RSA 密钥,但这也不起作用:

aspnet_regiis -pz "NetFrameworkConfigurationKey"

aspnet_regiis -pc "NetFrameworkConfigurationKey"

我不确定为什么我可以成功加密而不解密。对我来说,RSA 是对称的。

我是盒子上的本地管理员。

标签: asp.netiis

解决方案


当 .NET 配置为使用 OEAP 时,这似乎是一个问题。我能够找到显示类似问题的这篇文章:

aspnet_regiis web.config 加密 [来自提供商的错误消息:错误数据。]

我更新了 machine.config 文件,重新启动,问题就消失了。


推荐阅读