2010-10-28 99 views
1

我們有一個Windows服務作爲我們軟件的一部分,即使沒有用戶登錄到系統,它也可以在後臺將數據傳輸到遠程數據庫。目前這些數據被緩存在Program Files目錄中,我認爲這不是一個好主意,因爲它要求我們降低Program Files中目錄的安全權限。我認爲它應該緩存這個%LocalAppData%文件夾,以便我們不必這樣做。Windows服務應該在哪裏寫應用程序數據?

在這裏被認爲是最佳實踐?

我們傾向於作爲發展過程中一個正常的應用程序,使調試更容易運行的服務額外的要求,這將是很好,如果我們可以很容易地進行模式切換,而不會丟失任何緩存數據。儘管如果有必要,我們可以沒有這種生活

感謝

回答

1

是的,你應該創建%LocalAppData%,而不是一個全系統的位置,在你的文件。您可以通過CSIDL_LOCAL_APPDATASHGetFolderPath()以獲取該文件夾的實際名稱。

在開發過程中,您可以配置服務來模擬連接的用戶,以便將文件存儲在同一個地方無論是在服務和正常應用模式。

0

我會說,最好的地方是該服務正在運行,並且用戶的用戶應用程序數據文件夾。你使用默認的本地服務用戶還是自定義用戶?我不確定本地服務用戶的AppData會解析哪個目錄,但我認爲那是你想要的。

+0

我相信我們是作爲自定義用戶運行的。 – 2010-10-28 10:49:21

相關問題