“aspnet_regiis -pa”不起作用

我使用受保护的configuration来存储在我们的asp.net应用程序的Web.config文件中encryption的敏感数据。
我已经按照演练:创build和导出RSA密钥容器中的步骤生成和导出私钥。
我遵循演练中的步骤:使用受保护的configurationencryptionconfiguration信息以使用该密钥encryptionWeb.config文件的一部分。

我的问题是,我无法在testing环境中使用该键,由于aspnet_regiis命令的奇怪行为。

我已经能够在运行Windows 8的同事的计算机上工作aspnet_regiis -pi命令(导入私钥)和aspnet_regiis -pa (授予对私钥的访问)在那里没有问题。

在运行Windows 7的testing环境中,我已经能够使用aspnet_regiis -pi <KeyContainer> <KeyFile>成功地将私钥导入到密钥容器中。
但是,当我尝试aspnet_regiis -pa <KeyContainer> <account-name> ,该命令只是列出了它的命令行选项。 这并不表示失败或成功。

所有这些环境都使用.Net Framework v4。

我已经看了这个问题 ,但不同的是,我能够执行aspnet_regiis -pi <KeyContainer> <KeyFile> 。 正如在这里所build议的那样,执行aspnet_regiis -lk也没有什么不同。

问题是:如何授予应用程序访问密钥容器的内容,以便它可以解密Web.config? 为什么aspnet_regiis就像“-pa”选项不存在一样,而不是给我一个“成功”或“失败”的消息?

事实certificate,我们正在使用aspnet_regiis的错误版本。

我们从%Windows%\Microsoft.Net\Framework\v4.0.30319目录调用aspnet_regiis。
当从%Windows%\Microsoft.Net\Framework64\v4.0.30319 (64位版本)中调用该命令时,该命令报告成功。

不过,错误信息会有帮助…

编辑:
似乎密钥容器不可用,除非你有一个用户configuration文件。 在另一台服务器上,当我们允许使用“作为服务login”的帐户访问密钥容器时,即使它位于pipe理员组中,也失败了。 当我们实际login时,创build一个用户configuration文件,密钥容器确实可用。