我創建了一個控制檯.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應用程序!)。 非常感謝您的建議。