如何使用C#修改web.config中的applicationSettings

3

我希望通过C#来修改web.config文件。

我的Web.config文件

 <?xml version="1.0" encoding="utf-8"?>

    <!--
      Weitere Informationen zum Konfigurieren der ASP.NET-Anwendung finden Sie unter
      "http://go.microsoft.com/fwlink/?LinkId=169433"
      -->

    <configuration>
        <configSections>
            ...
        </configSections>
        <system.web>
            ...
        </system.web>

        <applicationSettings>
            <AdminTest.Properties.Settings>
                <setting name="AD_Admin" serializeAs="String">
                    <value>GastzugangAdmin</value>
                </setting>
                <setting name="AD_User" serializeAs="String">
                    <value>GastzugangUser</value>
                </setting>
            </AdminTest.Properties.Settings>
        </applicationSettings>
    </configuration>

使用字符串 ADAdmin = Properties.Settings.Default.AD_Admin; 可以从web.config获取值,但我不知道如何覆盖它。我尝试了以下方法。

protected void btnCon_Click(object sender, EventArgs e)
        {
            string con = txtCon.Text;

            try
            {
                ConfigurationManager.AppSettings.Set("AD_Admin", con);
                Settings.Default.Save();

            }
            catch (Exception)
            {

            }

        }

但是它不起作用。

你想要更新内存加载的设置或者web.config文件中的值吗? - sll
我建议将用户可更改的设置移入数据库中。 - Christian Hayter
https://dev59.com/tm435IYBdhLWcg3wrSLN - Karlth
1个回答

0

在 .NET Fx 中有配置 API 用于修改配置,您可以使用它。例如,请查看 WebConfigurationManager

var config = WebConfigurationManager.OpenWebConfiguration("~/web.config");
config.AppSettings["xyz"] = value;
config.Save();

请注意,每当您保存配置文件时,您的Web应用程序都将重新启动。

由于安全级别的限制,无法访问 System.Configuration.ConfigurationElement.this[System.Configuration.ConfigurationProperty]。 - Tarasov
@Tarasov,尝试使用config.AppSettings.Settings["xyz"] = value。顺便说一句,您的代码运行所在的用户帐户还需要对web.config文件具有读/写权限。 - VinayC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接