我使用了这里找到的一些代码来编辑我的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);
}
}
1条答案
按热度按时间jv4diomz1#
原来这是一个文件权限问题。一旦web.config被赋予应用程序池标识正在使用的权限,配置文件就会按预期保存,没有错误。