从后面的代码更改Web配置中的Appsettings值时获取错误

时间:2013-06-24 07:13:12

标签: c# asp.net

我使用以下代码更改应用程序的Web配置中的appsetting键值。

private void ChanngeDefaultPassword(string password)
{
    try
    {
        var objConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
        AppSettingsSection objAppsettings = (AppSettingsSection)objConfig.GetSection("appSettings");
        objConfig.AppSettings.Settings["DEFAULT_PASSWORD"].Value = password;
        objConfig.Save();
    }
    catch (Exception ex)
    {
    }
}

我收到错误陈述

  

尝试执行未经授权的操作。

在保存配置更改的步骤中抛出此错误。

3 个答案:

答案 0 :(得分:0)

我认为您可能还需要在文件AllowLocation中设置machine.config。这是一个布尔值,指示是否可以使用该元素配置单个页面。如果“AllowLocation”为false,则无法在单个元素中进行配置。

更改web.config文件通常会导致应用程序重新启动。

如果您确实需要自己的应用程序来编辑自己的设置,那么您应该考虑采用不同的方法,例如数据设置或使用可编辑设置创建XML文件。

有关详情,请参阅Stack Overflow问题 How do you modify the web.config appSettings at runtime?

答案 1 :(得分:-1)

MSDN上的这篇文章可能有您想要的答案: UnauthorizedAccessException when saving AppSettings data to a Local Intranet file share

答案 2 :(得分:-1)

我想在这里你不需要写AppSettingsSection objAppsettings = (AppSettingsSection)objConfig.GetSection("appSettings");

您可以使用objConfig直接保存设置。

试试这段代码:

private void ChanngeDefaultPassword(string password)
{
    try
    {
        System.Configuration.Configuration objConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");

        objConfig.AppSettings.Settings["DEFAULT_PASSWORD"].Value = password;
        objConfig.Save();
     }
     catch (Exception ex)
     {
     }
}