Измените 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); } 
  • IIS7, web.config, чтобы разрешить только статический обработчик файлов в каталоге / загрузках веб-сайта
  • Как заблокировать пути в ASP.NET MVC?
  • Избегайте наследования web.config в дочернем веб-приложении с использованием inheritInChildApplications
  • Шифрование Web.Config
  • Как зашифровать одну запись в web.config
  • Переменные в app.config / web.config
  • Ошибка входа для пользователя «IIS APPPOOL \ ASP.NET v4.0»
  • Веб-сайты Windows Azure переопределяют мои страницы ошибок 404 и 500 в моем приложении node.js
  • Ошибка входа для пользователя «NT AUTHORITY \ NETWORK SERVICE»
  • Как предотвратить перезапуск приложения ASP.NET при изменении web.config?
  • Как добавить амперсанд для значения в файле конфигурации приложения ASP.net/C#
  • Давайте будем гением компьютера.