Я создал консольное приложение .Net и зашифровал файл app.config с помощью RSAProtectedConfigurationProvider.Я использовал статью http://www.codeproject.com/KB/dotnet/EncryptingTheAppConfig.aspx в качестве примера для шифрования.Он отлично работает в IDE на моем рабочем столе XP.Затем я развернул свое приложение на сервере 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 со своего рабочего стола на сервер.Можете ли вы посоветовать, как я могу это сделать (это не веб-приложение!).Большое спасибо за ваш совет.