使用C#(.NET)以编程方式更改web.config

时间:2010-02-14 06:22:29

标签: c# web-config

如何使用C#以编程方式修改/操作web.config?我可以使用配置对象,如果是,我如何将web.config加载到配置对象中?我想有一个完整的例子来改变连接字符串。修改后,web.config应写回硬盘。

4 个答案:

答案 0 :(得分:113)

这是一些代码:

var configuration = WebConfigurationManager.OpenWebConfiguration("~");
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
section.ConnectionStrings["MyConnectionString"].ConnectionString = "Data Source=...";
configuration.Save();

查看this article中的更多示例,您可能需要查看impersonation

答案 1 :(得分:12)

Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
ConnectionStringsSection section = config.GetSection("connectionStrings") as ConnectionStringsSection;
//section.SectionInformation.UnprotectSection();
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
config.Save();

答案 2 :(得分:5)

由于web.config文件是xml文件,因此您可以使用xmldocument类打开web.config。从该xml文件中获取要更新的节点,然后保存xml文件。

这里有一个URL,它更详细地解释了如何以编程方式更新web.config文件。

http://patelshailesh.com/index.php/update-web-config-programmatically

注意:如果对web.config进行任何更改,ASP.NET会检测到更改并重新加载您的应用程序(回收应用程序池),其效果是会话,应用程序和缓存中保存的数据将丢失(假设会话状态是InProc而不是使用状态服务器或数据库。)

答案 3 :(得分:2)

这是我用来更新AppSettings的方法,适用于Web和桌面应用程序。如果需要编辑connectionStrings,则可以从import tensorflow as tf with tf.device('/gpu:0'): for i in range(10): print(i) with tf.device('/gpu:1'): for i in range(10, 20): print(i) 获取该值,然后使用System.Configuration.ConnectionStringSettings config = configFile.ConnectionStrings.ConnectionStrings["YourConnectionStringName"];设置一个新值。请注意,如果您在config.ConnectionString = "your connection string";的{​​{1}}部分中有任何评论,这些评论将被删除。

connectionStrings