我创建了一个控制台.Net应用程序,并使用RSAProtectedConfigurationProvider加密了app.config文件。我使用了一篇文章http://www.codeproject.com/KB/dotnet/EncryptingTheAppConfig.aspx作为加密的例子。它可以在我的XP桌面上的IDE中正常工作。 然后我将我的应用程序部署到Windows 2003服务器。该软件包包含应用程序的可执行文件以及加密的app.exe.config文件。但是,应用程序无法在服务器上有以下异常:部署加密的app.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应用程序!)。 非常感谢您的建议。