Как я могу изменить / управляют web.config
программно с C#? Я могу использовать объект конфигурации, и, если да, как я могу загрузиться web.config
в объект конфигурации? Я хотел бы иметь полный пример, изменяющий строку подключения. После модификации web.config
должен быть записан обратно к жесткому диску.
Вот некоторый код:
var configuration = WebConfigurationManager.OpenWebConfiguration("~");
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
section.ConnectionStrings["MyConnectionString"].ConnectionString = "Data Source=...";
configuration.Save();
Смотрите другие примеры в этой статье, вам может понадобиться взглянуть на имперсонацию.
Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
ConnectionStringsSection section = config.GetSection("connectionStrings") as ConnectionStringsSection;
//section.SectionInformation.UnprotectSection();
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
config.Save();
Поскольку файл web.config является xml файлом, вы можете открыть web.config с помощью класса xmldocument. Получить узел из этого xml файла, который вы хотите обновить, а затем сохранить xml файл.
вот URL, который более подробно объясняет, как можно программно обновить файл web.config.
http://patelshailesh.com/index.php/update-web-config-programmatically
Примечание: если вы внесете какие-либо изменения в web.config, ASP.NET обнаружит эти изменения и перезагрузит ваше приложение (переработает пул приложений), в результате чего данные, хранящиеся в Session, Application и Cache будут потеряны (при условии, что состояние сессии находится в InProc и не используется сервер состояния или база данных).