首页 > 解决方案 > 以编程方式在 .NET Web 窗体中设置 Web.Config AppSettings

问题描述

使用一系列网站,这些网站通过简单地循环存储在数据库中的用户指定值,以编程方式为每个网站设置一些 appSettings 值。

foreach (DataRow dr in result.Tables[0].Rows) {
    ConfigurationManager.AppSettings.Set(dr["app_key_name"].ToString(), dr["app_key_value"].ToString());
}

这允许每个站点使用相同的代码库,但定义和访问不同的变量。

问题是(许多)网站之一似乎经常丢失以编程方式添加的 appSettings。在 Web.Config 文件中设置的少数 appSettings 仍然存在,但以编程方式添加的那些似乎有时会失败,或者在站点回收时不会重新加载。

如果这些变量不存在,是否应该在 Application_BeginRequest 上检查并重新添加这些变量?想法?

标签: c#asp.net.netwebforms

解决方案


您不需要调用 Save() 吗?:

    config.Save(System.Configuration.ConfigurationSaveMode.Modified)

推荐阅读