我有一个用 C# (.NET 4.5) 编写的 Windows 服务。此服务有一个user
范围设置,用于保存计时器变量。为了调试服务,我需要更新这个变量,所以我需要知道user.config
服务的文件在哪里。OnStart()
因此,我在服务的方法中添加了以下代码:
Logger.InfoFormat("user.config at \"{0}\"", ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath);
转储到我的日志文件中的是以下路径:
C:\Windows\system32\config\systemprofile\AppData\Local\company\service.exe_Url_randomcharacters\1.0.0.0\user.config
但是当我尝试打开该文件时,它不存在。在进行 Windows 搜索后,我在以下位置找到了实际文件:
C:\Windows\SysWOW64\config\systemprofile\AppData\Local\company\service.exe_Url_randomcharacters\1.0.0.0\user.config
为什么是这样?我假设有一些 32 位/64 位兼容性魔法,但是获得实际路径的正确代码(如果有的话)是什么?
附加信息(如果有帮助):该服务正在 Windows Server 2008 R2 64 位计算机上运行,并且它是通过installutil
. 我不确定是使用 32 位还是 64 位版本installutil
- 这会有所不同吗?