c# 更新web.config

 1 /// <summary>
 2         /// 添加和更新配置文件web.config的appSettings,缺点是会删除注释
 3         /// </summary>
 4         /// <param name="key"></param>
 5         /// <param name="value"></param>
 6         public static void AddUpdateAppSettings(string key, string value)
 7         {
 8             try
 9             {
10                 var configFile = WebConfigurationManager.OpenWebConfiguration("~");
11                 var settings = configFile.AppSettings.Settings;
12                 try
13                 {
14                     if (settings[key] == null)
15                     {
16                         settings.Add(key, value);
17                     }
18                     else
19                     {
20                         settings[key].Value = value;
21                     }
22                     configFile.Save(ConfigurationSaveMode.Modified);
23                     ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
24                 }
25                 catch (Exception ex)
26                 {
27                     if (settings.Count != 0)
28                     {
29                         NLog.Error("配置文件写入失败,需要写入文件的配置信息:===============================");
30                         foreach (string tkey in settings.AllKeys)
31                         {
32                             string tvalue = settings[tkey].Value;
33                             NLog.Error(string.Format("Key: {0} Value: {1}", tkey, tvalue));
34                         }
35                     }
36                     throw;
37                 }
38             }
39             catch (Exception ex)
40             {
41                 NLog.Error("具体失败内容:" + ex);
42             }
43         }
44
45         /// <summary>
46         /// 添加和更新web.config的appSettings,且不删除注释
47         /// </summary>
48         /// <param name="key"></param>
49         /// <param name="value"></param>
50         public static void UpdateAppSetting(string key, string value)
51         {
52             try
53             {
54                 Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
55                 SaveUsingXDocument(key, value, config.AppSettings.ElementInformation.Source);
56             }
57             catch (Exception ex)
58             {
59                 NLog.Error("更新配置失败" + ex);
60             }
61         }
62         private static void SaveUsingXDocument(string key, string value, string fileName)
63         {
64             XDocument document = XDocument.Load(fileName);
65             if (document.Root == null)
66             {
67                 return;
68             }
69             var appSettings = document.Root.Element("appSettings");
70             if (appSettings == null) return;
71             XElement appSetting = appSettings.Elements("add").FirstOrDefault(x => x.Attribute("key").Value == key);
72             if (appSetting != null)
73             {
74                 appSetting.Attribute("value").Value = value;
75             }
76             else
77             {
78                 XElement ele = new XElement("add", new XAttribute("key", key), new XAttribute("value", value));
79                 appSettings.Add(ele);
80             }
81             document.Save(fileName);
82         }

原文地址:https://www.cnblogs.com/mantishell/p/11663504.html

时间: 2024-11-10 17:38:32

c# 更新web.config的相关文章

微软ASP.NET网站部署指南(3):使用Web.Config文件的Transformations

1. 综述 大多数程序里都会在Web.config里设置參数,而且在部署的时候须要更改. 每次都手工更改这些配置非常乏味,也easy出错. 该章节将会告诉你假设通过自己主动化更新Web.config文件来避免这些问题. 2. Web.config Transformations 与Web Deploy Parameters 有2种方式来自己主动化更新Web.config文件的设置:Web.config transformations和Web Deploy parameters. Web.conf

微软ASP.NET站点部署指南(3):使用Web.Config文件的Transformations

1. 综述 大多数程序里都会在Web.config里设置参数,并且在部署的时候需要更改.每次都手工更改这些配置很乏味,也容易出错.该章节将会告诉你如果通过自动化更新Web.config文件来避免这些问题. 2. Web.config Transformations 与Web Deploy Parameters 有2种方式来自动化更新Web.config文件的设置:Web.config transformations和Web Deploy parameters.Web.config transfo

web.config问题及配置(更新中)

ASP.NET升级到4.5后的改动 1. web.config中machineKey的设置ASP.NET ASP.NET 4.5的默认设置是: <machineKey compatibilityMode="Framework45" /> ASP.NET 4.5对表单验证的加/解密算法进行了改进,如果不是同时将所有ASP.NET应用程序升级至ASP.NET 4.5,为了保持表单验证的兼容性,需要修改compatibilityMode的设置. <machineKey co

Linux下用ftp更新web内容!

使用ftp更新web!让网页更新一次OK! 配置如下: 1.在Linux下安装ftp服务器! yum -y install vsftpd #ftp由vsftpd提供! 2.配置主配置文件/etc/vsftpd/vsftpd.conf,修改如下: 1 # Example config file /etc/vsftpd/vsftpd.conf 2 # 3 # The default compiled in settings are fairly paranoid. This sample file

Forms验证在Web.config中的配置说明

<forms name="name" loginUrl="URL" defaultUrl="URL" protection="[All|None|Encryption|Validation]" timeout="[MM]" path="path" requireSSL="[true|false]" slidingExpiration="[true|fa

App.config和Web.config配置文件的自定义配置节点

前言 昨天修改代码发现了一个问题,由于自己要在WCF服务接口中添加了一个方法,那么在相应调用的地方进行更新服务就可以了,不料意外发生了,竟然无法更新.左查右查终于发现了问题.App.config配置文件中的配置貌似出现了问题.查找节点发现是如下节点: <configSections> <section name="Test1" type="Demo.Section1,Demo"/> .............. </configSect

第一章 .Net——ASP.NET Web.config

关于Web.config这个专题,我会定期更新,包括内容广度和深度等方面.更新方式:结合自己的理解.相关技术博客.相关文献.大家建议.名师指导等方面. 引用部分: 以下部分引用网址:.NET Web 应用程序的配置信息(如最常用的设置ASP.Net Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中.当你通过VB.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置.如果你想修改子目录

Web.config之连接字介绍

一.连接字配置方式 web.config中有两种方式来配置连接字:<appsetting>中配置,<connectionStrings>中配置. 1.<appsetting>中配置 <configuration> <appSettings> <add key="connstr1" value="Data Source=.;Initial Catalog=DBName;Integrated Security=tr

web.config/app.config敏感数据加/解密的二种方法

一 建立虚拟目录  http://localhost/EncryptWebConfig,并添加web.config,其中包含数据库连接字符串: <connectionStrings>            <add name="Conn" connectionString="Data Source=liuwu;User ID=liuwu;Password=liuwu;"/>    </connectionStrings> 二  运