asp.net динамически добавляет строку подключения в web.config

У меня есть веб-приложение и Windows-приложение в одном решении. Я хочу динамически добавить строку подключения в файл web.config. Информация о строке подключения передается из приложения Windows. Как мне это сделать, пожалуйста, помогите мне.

Мое оконное приложение, имеющее:

WebForm1 wf = new WebForm1();
wf.add();

И мое приложение wep, имеющее:

 public void add()
 {
      Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
      ConnectionStringsSection sec = (ConnectionStringsSection)config.GetSection("connectionStrings");
      sec.ConnectionStrings["DBCS"].ConnectionString = "Data Source=GKS_004-PC;Database=hello1;User ID=123;Password=123";
      config.Save();          
  }

1 ответ

Я считаю, что вы решаете свою проблему таким образом, что для ее решения может существовать иной подход, однако для того, чтобы делать то, что вы хотите, у вас есть два варианта. Сначала вы можете прочитать файл, используя IO пространство имен, а затем разобрать его как XML с помощью LINQ узлы и вторые вы можете использовать Configuration учебный класс (System.Configuration а также System.Web.Configuration Пространства имен).

//get the configuration file
Configuration config = WebConfigurationManager.OpenWebConfiguration("..."); //path to config

//get Configuration section
ConfigurationSection section = config.GetSection("..."); 

config.AppSettings.Settings.Add(Key, Value);
config.AppSettings.Settings.Remove(Key);

или таким образом, вместо использования напрямую Configuration учебный класс

AppSettingsSection appsettings = (AppSettingsSection) config.GetSection("...");
appsettings.Settings.Add(key, Value);
Другие вопросы по тегам