2013-06-05 21 views
1

我已經設置了控制檯,庫和服務項目。 Library項目加載文件夾中的文件並將文本存儲在變量中。我的Windows服務如何無法訪問其中包含文件的文件夾?

控制檯項目將操縱這些變量。我能夠成功運行控制檯項目,並且可以毫無問題地加載文件。這些文件在DLL中設置爲始終複製,並指定爲構建操作的內容。

當我嘗試在服務中運行完全相同的代碼時。

File.ReadAllText(@"MyFolder\SomeFile.txt"); 

它引發以下異常。

The type initializer for 'MyLibrary.Data.ReadFiles' threw an exception. 

我正在使用安裝項目類型來創建安裝程序。服務安裝後,文件夾MyFolder確實存在於服務的應用程序文件夾中,以及文件中。還有什麼可能導致我的服務無法讀取這些文件的問題?

編輯1

public class ReadFiles { 
    public static string DataFile = File.ReadAllText(@"MyFolder\SomeFile.txt"); 
} 

回答

1

,你在運行Windows服務的服務帳戶,沒有權利當您試圖訪問的位置讀取。您看到的錯誤與您顯示的代碼可能存在於類型ReadFiles的構造中的事實有關。

+0

服務帳戶是LOCAL SYSTEM。我如何允許它讀取所述文件夾的權限?系統被授予文件夾以及文件中的所有內容。 – meanbunny

+0

我絕對同意,只是想弄清楚解決方案。 – meanbunny

+0

@meanbunny,如果你正在運行'LOCAL SYSTEM',那麼你只是在'ReadFiles'的構造函數中拋出一個異常。發佈該代碼,或者您甚至可以看到它,並檢查事件查看器中是否存在幾乎可以確定存在的未處理的.NET異常。 –

相關問題