Как я могу изменять / управлять web.config
программным образом с помощью C #? Могу ли я использовать объект конфигурации и, если да, как загрузить его web.config
в объект конфигурации? Я хотел бы получить полный пример изменения строки подключения. После модификации файл web.config
должен быть записан обратно на жесткий диск.
c#
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 обнаружит эти изменения и перезагрузит ваше приложение (перезапустите пул приложений), и в результате данные, хранящиеся в сеансе, приложении и кэше, будут потеряны (при условии, что состояние сеанса является InProc и не использует сервер состояний или базу данных).
источник
Это метод, который я использую для обновления AppSettings, работает как для веб-приложений, так и для настольных приложений. Если вам нужно отредактировать connectionStrings, вы можете получить это значение из,
System.Configuration.ConnectionStringSettings config = configFile.ConnectionStrings.ConnectionStrings["YourConnectionStringName"];
а затем установить новое значение с помощьюconfig.ConnectionString = "your connection string";
. Обратите внимание, что если у вас есть какие-либо комментарии вconnectionStrings
разделе,Web.Config
они будут удалены.private void UpdateAppSettings(string key, string value) { System.Configuration.Configuration configFile = null; if (System.Web.HttpContext.Current != null) { configFile = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~"); } else { configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); } var settings = configFile.AppSettings.Settings; if (settings[key] == null) { settings.Add(key, value); } else { settings[key].Value = value; } configFile.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name); }
источник