2013-04-05 47 views
0

我有一個作爲服務運行的程序,同時也作爲服務前端運行。存儲.net服務和GUI前端數據/設置的最佳位置

這兩個實例存儲文件和數據的最佳策略是什麼?

程序在3種模式運行: -

  • 完全作爲服務
  • 服務和前端GUI(即2實例)
  • GUI

在所有情況下,文件並且配置將需要創建/讀取/寫入訪問並且可以在任何其他模式下訪問

Appli cationData,LocalApplicationData,似乎用戶特定的,我不希望在用戶帳戶下

CommonApplicationData運行的服務,我認爲有UAC

下對一般用戶的限制

COMMONPROGRAMFILES PROGRAMFILES也有在一般用戶的限制UAC

隨着最後兩個例子然而

沒有設置權限的安裝選項

有沒有人有一個優雅的解決這一點,或可以點我在正確的方向

謝謝

+0

如果您不希望服務在用戶帳戶下運行,那麼您運氣不好......您可以使用c:\​​ temp \,但任何人都可以訪問該文件,然後您可能會丟失文件。最好的方法是以用戶身份運行,併爲該用戶提供針對您爲應用創建的特定文件夾的權利。 – MaxOvrdrv 2013-04-05 01:41:33

+0

Hrm,臨時目錄絕對不是一個好的選擇,我仍然在討論在用戶帳戶下運行服務的問題,但它似乎打敗了服務的想法,因爲它將受到用戶對我的權限的限制猜測,並可能會創建更多的問題,然後解決(我仍然試圖讓我的頭腦) – 2013-04-05 02:47:01

回答

0

%ALLUSERSPROFILE%環境變量應該適合您的需要。它指向WinXP上的C:\Documents and Settings\All Users和現代Windows上的C:\ProgramData,這兩者都用於存儲用戶不可知的程序數據。

+0

我想你的建議是在CommonApplicationData下創建目錄並在安裝時給予所有用戶正確的權限,即讀取寫創建,以迎合UAC啓用的系統? – 2013-04-05 02:40:33

+0

您甚至可能不需要更改權限。默認情況下(至少在全新安裝的Win7 Pro上)C:\ ProgramData允許爲所有用戶讀/寫/創建/修改屬性。 – 2013-04-05 03:25:34