我有一个使用用户范围设置的Windows服务,并在服务启动期间使用以下代码加载它们:
Properties.Settings.Default.Reload();
if (Properties.Settings.Default.UpgradeRequired)
{
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.UpgradeRequired = false;
}
在一台生产计算机上,无法启动服务,我从ArgumentNullException
方法获得Reload()
,其中包含以下堆栈跟踪:
System.ArgumentNullException: Value cannot be null.
Parameter name: path
at System.IO.Directory.GetParent(String path)
at System.Configuration.LocalFileSettingsProvider.GetPreviousConfigFileName(Boolean isRoaming)
at System.Configuration.LocalFileSettingsProvider.Upgrade(SettingsContext context, SettingsPropertyCollection properties, Boolean isRoaming)
at System.Configuration.LocalFileSettingsProvider.Upgrade(SettingsContext context, SettingsPropertyCollection properties)
at System.Configuration.ApplicationSettingsBase.Upgrade()
没有记录Upgrade()
方法可能抛出ArgumentNullException
。有没有人知道这意味着什么和/或如何在不重建服务的情况下解决它?