【发布时间】:2011-02-10 16:33:12
【问题描述】:
我创建了一个控制台 .Net 应用程序并使用 RSAProtectedConfigurationProvider 加密了 app.config 文件。我使用了一篇文章http://www.codeproject.com/KB/dotnet/EncryptingTheAppConfig.aspx 作为加密的示例。它在我的 XP 桌面上的 IDE 中运行良好。 然后我将我的应用程序部署到 Windows 2003 服务器。该软件包包括应用程序的可执行文件以及加密的 app.exe.config 文件。但是,应用程序在服务器上失败,但出现以下异常:
未处理的异常:System.Configuration.ConfigurationErrorsException:无法使用提供程序“RsaProtectedConfigurationProvider”解密。来自提供者的错误消息:无法打开 RSA 密钥容器。
我决定在服务器上加密 app.config,所以我复制了 app.config 并对其进行了加密。 app.exe.config 看起来是加密的,我运行了应用程序。但是,它失败了:虽然它没有像以前那样引发 Rsa 异常,但它无法读取连接字符串。解密app.exe.config后,发现里面只包含下面的字符串
<connectionStrings>
<clear />
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
尽管原始 app.config 包含一个特定于应用程序的连接字符串。 我认为为了解决我的问题,我应该将 RSA 密钥从我的桌面导出到服务器。你能告诉我该怎么做吗(它不是一个 Web 应用程序!)。 非常感谢您的建议。
【问题讨论】:
标签: vb.net deployment app-config encryption