Измените web.config программно с помощью C # (.NET)

Как я могу модифицировать / манипулировать 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, используя class 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); } 
  • Плюсы и минусы AppSettings vs applicationSettings (.NET app.config / Web.config)
  • Установка страницы по умолчанию в Asp.net
  • Ошибка HTTP 500.19 - Внутренняя ошибка сервера
  • Сообщения Log4Net «Не удалось найти информацию о схеме»
  • Шифрование Web.Config
  • Настройка строки подключения в ASP.NET для SQL SERVER
  • Как зашифровать одну запись в web.config
  • Отладка / выпуск Web.Config
  • Что получает приоритет, maxRequestLength или maxAllowedContentLength?
  • Разрешить анонимную проверку подлинности для одной папки в web.config?
  • Как настроить инвариантную культуру в ASP.NET-глобализации?
  • Interesting Posts
    Давайте будем гением компьютера.