我得到一个系统。配置。settingspropertynotfoundexception错误的windows服务
-
28-10-2019 - |
题
我有一个windows的应用程序,使用SettingsProvider读配置和组默认值,如果文件不存在。
它工作正常运行正常。
我尝试写一windows服务开始的这个程序。当这是由服务,我得到 System.Configuration.SettingsPropertyNotFoundException
在所有的设定的属性。
我如何能解决这个异常的时服务是否正在运行的程序?
解决方案
这仅表示该应用无法读取.Settings文件。我可以想到两个可能的原因:
-
该服务在无权访问.settings文件的帐户下运行。(或.config文件,视情况而定),这不太可能,因为该服务可以启动应用程序,并且对应用程序而不是设置文件具有权限没有意义。
-
运行时无法找到设置文件。它期望设置位于可执行文件的根启动路径中。检查并确保问题机器上存在它。
但是,谷歌搜索结果发现了一个我可能没有想到的明显原因。上次编译后是否添加了.settings?在Visual Studio中编译该应用,然后重试...
其他提示
另一个可能的原因是如果你写一个自定义 SettingsProvider
这是扔和例外在 Initialize
.
在我的情况下,我做了这样的:
public class CustomSettingsProvider : SettingsProvider
{
public override void Initialize(string name, NameValueCollection config)
{
base.Initialize(name, config);
}
}
由于 name
总是通过为 null
, base.Initialize
是扔一个 ArgumentNullException
.我固定的,它通过一个非空的名称是这样的:
public override void Initialize(string name, NameValueCollection config)
{
base.Initialize(name ?? GetType().Name, config);
}
不隶属于 StackOverflow