需求:

什么时候会用到动态改变Web.config内的值?
在Web.config定义了一个全局设置值A,因为程序运行中满足了某个条件,要将A的值改变

Web.config中定义:

  1. <appSettings>
  2. <add key="IsChangeDb" value="false"/>
  3. </appSettings>

获取Web.config中指定配置:

  1. //获取web.config中 定义在appSetting中定义的配置
  2. var item = ConfigurationManager.AppSettings["IsChangeDb"];
  3. //根据我自己的需要转换成bool值
  4. bool isChangeDb = string.IsNullOrEmpty(ConfigurationManager.AppSettings["IsChangeDb"]) ? false : bool.Parse(ConfigurationManager.AppSettings["IsChangeDb"]);

代码中更改Web.config中指定配置:


  1. Configuration config=System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
  2. config.AppSettings.Settings.Remove("IsChangeDb");
  3. config.AppSettings.Settings.Add("IsChangeDb", "true");
  4. config.Save();

参考资料:

http://stackoverflow.com/questions/719928/how-do-you-modify-the-web-config-appsettings-at-runtime

出处:https://blog.csdn.net/qq_32452623/article/details/53580093

============================================================================

asp.net2.0新添加了对web.config直接操作的功能。开发的时候有可能用到在web.config里设置配置文件,其实是可以通过程序来设置这些配置节的。

asp.net2.0需要添加引用:

using System.Web.Configuration;

web.config里的配置节:

  1. Code
  2.   <appSettings>
  3.     <add key="FilePath" value="g:\Test\WebConfigManager\Upload\" />
  4.     <add key="p" value="g:\" />
  5.   </appSettings>

(1)读

  1. string filepath = ConfigurationManager.AppSettings["FilePath"];
 
(2)添加
  1.         Configuration config = WebConfigurationManager.OpenWebConfiguration("/WebConfigManager");
  2.         AppSettingsSection app = config.AppSettings;
  3.         app.Settings.Add("p", "p:\\");
  4.         config.Save(ConfigurationSaveMode.Modified);
 
(3)修改
  1.           Configuration config = WebConfigurationManager.OpenWebConfiguration("/WebConfigManager");
  2.             AppSettingsSection app = config.AppSettings;
  3.             app.Settings["p"].Value = @"g:\";
  4.             config.Save(ConfigurationSaveMode.Modified);
 
(4)删除
  1. Configuration config = WebConfigurationManager.OpenWebConfiguration("/WebConfigManager");
  2.         AppSettingsSection app = config.AppSettings;
  3.         app.Settings.Remove("p");
  4.         config.Save(ConfigurationSaveMode.Modified);
 
 
 
注意:
(1)asp.net用户需要有读取、修改、写入的权限。
(2)WebConfigManager是web.config所在的文件夹名。

出处:https://www.cnblogs.com/xxtkong/archive/2011/10/14/2211793.html

==============================================================================

通过从网上的了解,和学习,我们看到ConfigurationManager.OpenMappedExeConfiguration这个方法可以用于打开指定的配置文件,那么看看我们用它来做一些事情吧,下面看代码:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Configuration;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Web.Configuration;
  8.  
  9. namespace PVG.Lib.Configs
  10. {
  11. public class WebConfigHelper
  12. {
  13. /// <summary>
  14. /// 是否加密连接字符串
  15. /// </summary>
  16. public bool IsEncryptionConnection { get; set; }
  17.  
  18. private Configuration config = null;
  19. public Configuration Configuration
  20. {
  21. get { return config; }
  22. set { config = value; }
  23. }
  24.  
  25. public WebConfigHelper()
  26. {
  27. config = WebConfigurationManager.OpenWebConfiguration("~");
  28. }
  29.  
  30. /// <summary>
  31. /// 读取ConnectionStrings
  32. /// </summary>
  33. /// <param name="ConnName"></param>
  34. /// <returns></returns>
  35. public string GetConnectionStrings(string ConnName)
  36. {
  37. string res = "";
  38. if (config != null && config.ConnectionStrings.ConnectionStrings[ConnName] != null)
  39. res = config.ConnectionStrings.ConnectionStrings[ConnName].ConnectionString;
  40. return res;
  41. }
  42.  
  43. public string SetConnectionStrings(string ConnName, string ConnValue)
  44. {
  45. return SetConnectionStrings(ConnName, ConnValue, "");
  46. }
  47.  
  48. public string SetConnectionStrings(string ConnName, string ConnValue, string providerName)
  49. {
  50. if (config != null)
  51. {
  52. if (config.ConnectionStrings.ConnectionStrings[ConnName] != null)
  53. config.ConnectionStrings.ConnectionStrings[ConnName].ConnectionString = ConnValue;
  54. else
  55. config.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings(ConnName, ConnValue, providerName));
  56. config.Save(ConfigurationSaveMode.Modified);
  57. }
  58. if (IsEncryptionConnection)
  59. encryptionConn();//加密配置项
  60. return GetConnectionStrings(ConnName);
  61.  
  62. }
  63.  
  64. public string GetAppSettings(string keyName)
  65. {
  66. string res = "";
  67. if (config != null && config.AppSettings.Settings[keyName] != null)
  68. res = config.AppSettings.Settings[keyName].Value;
  69. return res;
  70. }
  71.  
  72. public string SetAppSettings(string keyName, string keyValue)
  73. {
  74. if (config != null)
  75. {
  76. if (config.AppSettings.Settings[keyName] != null)
  77. config.AppSettings.Settings[keyName].Value = keyValue;
  78. else
  79. config.AppSettings.Settings.Add(keyName, keyValue);
  80. config.Save(ConfigurationSaveMode.Modified);
  81. }
  82. return GetAppSettings(keyName);
  83.  
  84. }
  85.  
  86. private void encryptionConn()
  87. {
  88.  
  89. ConfigurationSection connectionSection = config.GetSection("connectionStrings");
  90. if (connectionSection != null)
  91. {
  92. connectionSection.SectionInformation.ProtectSection("RSAProtectedConfigurationProvider");
  93. config.Save();
  94. }
  95. }
  96.  
  97. }
  98. }

Web读取指定的config文件的内容的更多相关文章

  1. WinForm读取指定的config文件的内容

    config文件的使用 一.缘起 最近做项目开始使用C#,因为以前一直使用的是C++,因此面向对象思想方面的知识还是比较全面的,反而是因没有经过完整.系统的.Net方面知识的系统学习,经常被一些在C# ...

  2. php读取指定结束指针文件内容

    fopen操作时文件读取开始指针位于文件开始部分, fseek 以指定文件大小以及开始指针位置确定结束指针位置 具体案例: <?php//打开文件流,fopen不会把文件整个加载到内存$f = ...

  3. 【ASP.NET 进阶】定时执行任务实现 (定时读取和修改txt文件数字内容,无刷新显示结果)

    现在有很多网站或系统需要在服务端定时做某件事情,如每天早上8点半清理数据库中的无效数据等等,Demo 具体实现步骤如下: 0.先看解决方案截图 1.创建ASP.NET项目TimedTask,然后新建一 ...

  4. PCL点云库中怎样读取指定的PCD文件,又一次命名,处理后保存到指定目录

    我一直想把处理后的pcd文件重命名,然后放到指定的目录,尝试了好久最终做到了: 比方我想读取  "table_scene_lms400.pcd" 把它进行滤波处理,重命名为 &qu ...

  5. SAS 读取指定目录下文件列表宏

    OPTIONS PS=MAX LS=MAX NOCENTER SASMSTORE=SASUSER MSTORED MAUTOSOURCE;/*获取指定文件夹的指定类型的所有文件*/%MACRO GET ...

  6. SpringBoot学习:读取yml和properties文件的内容

    一.在SpringBoot实现属性注入: 1).添加pom依赖jar包: <!-- 支持 @ConfigurationProperties 注解 --> <!-- https://m ...

  7. 检测web服务器指定位置大文件是否存在

    在bugscan群里看到有人问有一个大文件,想探测其是否存在.如果使用curl的话,会将整个文件下载到节点,对于扫描没有任何用处,反而浪费了扫描时间. 于是我想到的解决办法是不使用curl,直接用底层 ...

  8. 可以在一个html的文件当中读取另一个html文件的内容

    1.IFrame引入,看看下面的代码 <IFRAME NAME="content_frame" width=100% height=30 marginwidth=0 marg ...

  9. C#Unit单元测试之读取Web.config文件

    长期一来,我们所完成的项目都没有写单元测试,今天我一时兴起,决定给自己写的代码写单元测试,简单的测试代码分分钟完成了,一运行测试,就懵逼了.没能达到我的预期效果,而是出现图1所示错误. 图1:单元测试 ...

随机推荐

  1. SQL-1 选取表中某一属性最大值的所有信息 查找最晚入职员工的所有信息

    题目描述 查找最晚入职员工的所有信息CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`fi ...

  2. Win10安装mysql-8.0.11-winx64详细步骤

    安装 mysql-8.0.11-winx64 https://blog.csdn.net/qq_20788055/article/details/80372577

  3. ajax返回数据定义为全局变量

    var result;   //定义全局变量    $(document).ready(function(){          $.ajax({                   type:'PO ...

  4. do文件的编写(转)

    以前在使用ModelSim进行仿真的时候,一直是使用其GUI进行操作的,但是这样很繁琐也很费时.故希望学习其自动化仿真do文件,下面是学习的一些总结. 一.编写基本的do文件 下面按照实际仿真的步骤来 ...

  5. DevExpress v18.1新版亮点——XAF篇(一)

    用户界面套包DevExpress v18.1日前正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress eXpressApp Framework(XAF) v18.1 ...

  6. mysql 优化2

    6. 合理使用EXISTS,NOT EXISTS子句.如下所示: 1.SELECT SUM(T1.C1) FROM T1 WHERE (SELECT COUNT(*)FROM T2 WHERE T2. ...

  7. Python 黏包及黏包解决方案

    粘包现象 说粘包之前,我们先说两个内容,1.缓冲区.2.windows下cmd窗口调用系统指令 1 缓冲区(下面粘包现象的图里面还有关于缓冲区的解释) 每个 socket 被创建后,都会分配两个缓冲区 ...

  8. builtroot 添加git 下载方式

    1.buildroot/Config.in 配置default git server eg:config xxxx_GIT_SITE string "git site" defau ...

  9. react-native 自定义 下拉刷新 / 上拉加载更多 组件

    1.封装 Scroller 组件 /** * 下拉刷新/上拉加载更多 组件(Scroller) */ import React, {Component} from 'react'; import { ...

  10. redis的哨兵模式

    我是在一台服务器上安装了三个redis  一主两从 想安装gcc gcc-c++ make tcl  lrzsz yum -y install gcc gcc-c++ make tcl  lrzsz ...