Windows 服务无法读取 OnStart 方法中的应用程序
本文关键字:方法 应用程序 OnStart 读取 服务 Windows | 更新日期: 2023-09-27 18:33:07
我写了一个自定义的Windows服务来处理一些文件清理,编辑等。在这个程序的OnStart方法中,我有:
timer.Elapsed += new ElapsedEventHandler(OnElapsedTime);
timer.Interval = Convert.ToInt32(System.Configuration.ConfigurationSettings.AppSettings["RunInterval"]) * 60 * 60 * 1000); //yeah, i know its an old method
timer.Enabled = true;
但是应用程序设置["运行间隔"]每次都返回null,即使我有:
<appSettings>
<add key="RunInterval" value="8" />
<!-- Lots of other stuff -->
</appSettings>
在 .exe.config 中。为什么要这样做?配置文件是否要到OnStart之后才加载?似乎这没有多大意义。
您绝对可以在 OnStart 处理程序中读取 app.config 设置。一定还有别的事情发生。您是否验证了您的值确实存在于 bin 文件夹的 app.config 中?
您使用的是哪个版本的 C#? System.Configuration.ConfigurationSettings 从 .NET 2.0 开始被弃用。 请改用 System.Configuration.ConfigurationManager。
刮擦一下,我的整个问题都是由配置问题引起的。包含默认数据库导致问题。我不确定为什么,可能缺少模式和实践 dll。
<dataConfiguration defaultDatabase="LiveDatabase"/>