我有一個Windows服務,用C#(.NET 4.5)編寫。此服務有一個user
作用域設置,用於保存計時器變量。爲了調試服務,我需要更新這個變量,所以我需要知道服務的文件位於哪裏。因此,我加入該服務的OnStart()
方法如下代碼:爲什麼Configuration.FilePath返回一個不存在的文件?
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
- 這是否會有所作爲?