我有“Class library projet”,后来在网络服务器上作为HttpHandler使用。所以我有本地2个文件app.config(对于本地开发,因为它是一个dll)和web.config(用于远程Web服务器)。
所以现在我想加密配置文件。所有内容都已加密并导入远程Web服务器。但处理程序不起作用。我收到错误:"Failed to decrypt using provider 'My_Provider'. Error message from the provider: The RSA key container could not be opened."
在我的开发电脑上一切正常。怎么了?
所以这是我的导出步骤
cd%windir%\ Microsoft.NET \ Framework \ v4.0.30319
aspnet_regiis -pc“My_Keys”-exp
aspnet_regiis -pa“My_Keys”“IIS APPPOOL \ CustomAppPool”
aspnet_regiis -pef“connectionStrings”“HandlerProjectPath”-prov “My_Provider”
aspnet_regiis -px“MyKeys”“HandlerProjectPath \ MyKeys.xml”-pri
暂停
这些是导入步骤
%windir%\ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis -pi “My_Keys”“MyKeys.xml”
暂停
P.S。我的处理程序在我的自定义AppPool中的IIS 7中工作,名称为“CustomAppPool”。我在我的电脑上专门创建了一个应用程序池名称。
这是我的configData
文化=中性, 公钥= b03f5f7f11d50a3a,
ProcessorArchitecture用于= MSIL“keyContainerName="My_Keys" useMachineContainer="true" /> </providers> </configProtectedData>
提前致谢!
答案 0 :(得分:1)
我认为您需要在导入密钥对后将容器的访问权限授予分配给AppPool的IIS标识。