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