[英]Windows Service Config File C#
我使用Visual Studio 2008 / C#开发了一个Windows服务应用程序。
我在项目中有一个app.config文件。 安装后,app.exe.config文件出现在可执行文件旁边,但当我尝试通过ConfigurationManager.AppSettings访问它们时,它似乎没有从中读取值。
它是否已将配置文件复制到其他位置,还是存在其他一些我不知道的问题?
提前致谢,
马丁。
编辑:配置文件名实际上是my_exe_file_name.exe.config,它看起来像:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="RuntimeFrequency" value="3" />
</appSettings>
</configuration>
而我正在尝试阅读:
ConfigurationManager.AppSettings["RuntimeFrequency"]
我不断看到的调试值是'1'而不是'3'。 我在这里做错了吗?
我找到了错误,它与文件权限有关。 安装该服务后,我的本地用户帐户无权修改app.exe.config文件。
我用来编辑的工具没有告诉我它被拒绝保存文件的权限 - 如果有人有兴趣那就是记事本++ - 所以我看不出它没有保存在旧的配置文件中。
现在解决了,谢谢大家。
马丁。
当您处于调试模式时,请检查并查看my_exe_file_name.vshost.exe.config中的设置。还要确保在app.config文件中进行调整。 Visual Studio应更新bin / debug文件夹中的最终配置文件。
也许您正在更新错误的配置文件。 你应该仔细检查一下
System.Configuration.ConfigurationManager.OpenExeConfiguration(PATH_TO_CONFIG);
通常,对于我编写的Windows服务,我将appName.exe.config文件放入C:\\ WINDOWS \\ system32 \\
也许你在该目录中有一个旧版本,即使你已经更新了项目中的配置文件,这也是你的服务获得价值的地方。
应将App.config文件重命名为your_exe_file_name.exe.config并放在exe文件附近。
您是否可能定义了多个RuntimeFrequency条目实例? ConfigurationManager从上到下读取文件并单独处理每个设置。 因此,文件中定义的RuntimeFrequency的最后一个值是它将使用的值。
如果您想确定您的文件是否正在使用,我只需删除或注释掉RuntimeFrequency的任何定义(发生复制/粘贴错误),并在ConfigurationManager尝试引用AppSettings中的条目时等待查看应用程序错误不存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.