我使用C#創建了一個Windows服務,該服務在C:\ProgramData
中寫入日誌(使用NLog)。
當我調試服務(在我的Windows 7上)(使用上面寫的代碼)時,日誌文件被正確創建並正確寫入日誌記錄。 但是,當我在我的服務器上安裝Windows服務器2008上運行的服務(x86)時,沒有創建日誌文件(我也檢查了C:\Windows\System32\
,沒有任何內容)。在日誌文件中寫入Windows服務權限
我懷疑這是一個授權問題,所以我怎麼知道我的服務使用哪些權限?
PS:我已經使用具有管理員權限的命令行C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe C:\PathToMyService\MyService.exe
安裝了我的服務。
權利將是您的服務運行的任何身份,而不是用於安裝它的身份。詳情請看這裏:http://stackoverflow.com/questions/858597/why-wont-my-windows-service-write-to-my-log-file –
C:\ windows \ system32不應該被用來寫日誌文件到。這是一個重要的操作系統目錄。另外C:\ ProgramData我們是應用程序二進制文件駐留,不應該用於日誌文件。您應該將應用程序服務的日誌文件寫入C:\ AppData \ local \ ...或Windows 2008服務器上的Windows事件日誌。如果你這樣做的話,你的權限問題也會減少,除此之外,這也是很好的做法。 –