我有一個Windows服務,使用登錄localhost\administrator
運行。此服務旨在調用另一個可執行文件(MyProcess.exe
),該文件應該將某些內容寫入日誌文件。該服務使用Process.Start()
創建的過程中,像這樣:通過網絡共享訪問本地文件夾問題
var p = new Process();
p.StartInfo.FileName = processFileName;
p.StartInfo.Arguments = arg;
p.Start();
問題是,似乎MyProcess.exe
被拒絕的權利寫入日誌文件,即使localhost\administrator
無疑有權日誌文件夾。如果我從命令行運行MyProcess.exe
,它可以很好地工作。
那麼,是否有可能使用不同的用戶登錄來執行進程?
你能想到爲什麼MyProcess.exe
被拒絕寫日誌文件的權利的任何其他原因?
UPDATE:日誌文件正在寫入本地機器,但使用網絡地址,即\\MyPC\LogFolder
。當我更改代碼來引用C:\MyFolder
時,一切正常。這顯然與網絡地址有問題(即使它是本地的)。
我需要在文件夾上放置哪些共享設置才能讓本地系統帳戶訪問該文件?
任何原因你不只是使服務作爲本地系統運行? – KingCronus
@KingCronus - 並非如此,我們之所以這樣做是因爲程序沒有寫入的緣故。顯然LocalSystem沒有權限到日誌文件夾。什麼是LocalSystem的正式帳戶名稱,所以我可以給共享文件夾上的帳戶權限? –
似乎很奇怪,LocalSystem應該可以訪問大多數地方的管理員?你把你的日誌文件放在哪裏? – KingCronus