asp.net 使用新的appsetting值保存配置可在本地工作,但不能在服务器(Webforms.net)上工作

ryoqjall  于 2023-03-04  发布在  .NET
关注(0)|答案(1)|浏览(112)

我使用了这里找到的一些代码来编辑我的web.config文件,它在我的本地示例上工作得很好,但是当我在服务器上这样做时,我得到了一个空引用异常。(它不是),并确认我正在更改的web.configappsettings键被正确读取,然后设置为新值,但是当保存发生时,它触发了异常,所以我很困惑空引用到底指的是什么:

public static void AddOrUpdateAppSettings(string key, string value)
    {
        try
        {
            var configFile = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
            var settings = configFile.AppSettings.Settings;
            
            if (settings[key] == null)
            {
                settings.Add(key, value);
            }
            else
            {
                settings[key].Value = value;
            }
            configFile.Save();
    ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
        }
        catch (ConfigurationErrorsException ex)
        {
            ErrorLog("AddOrUpdateAppSettings Error Info: " + ex.Message + Environment.NewLine + ex.InnerException.Message + Environment.NewLine + ex.StackTrace);
        }
    }
jv4diomz

jv4diomz1#

原来这是一个文件权限问题。一旦web.config被赋予应用程序池标识正在使用的权限,配置文件就会按预期保存,没有错误。

相关问题