Tôi đang viết một dịch vụ Windows cần duy trì một số dữ liệu khi khởi động lại/khởi động lại dịch vụ. Hiện tại tôi đang viết các tệp trong một thư mục được trả về bởi Application.UserAppDataPath
, nhưng điều đó dường như không mang lại cho tôi câu trả lời nhất quán. Làm cách nào để xác định đúng nơi để ghi dữ liệu?Ở đâu trên hệ thống tập tin nên một dịch vụ Windows lưu giữ dữ liệu của nó?
Trả lời
Điều đó tùy thuộc vào việc dịch vụ của bạn có đang chạy với tài khoản hệ thống hay với tài khoản người dùng cụ thể.
Tài khoản tài khoản. Lưu trữ các tệp trong thư mục CommonApplicationData:
đường dẫn chuỗiForSystem = Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData);
Tài khoản người dùng. Lưu trữ các tệp trong thư mục ApplicationData:
đường dẫn chuỗiForUser = Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData);
Nếu bạn muốn nó nhất quán (tức là người dùng bất khả tri) hãy thử Application.CommonAppDataPath
.
Tôi đồng ý. Nếu dịch vụ đang chạy dưới dạng LocalSystem thì có nghĩa là lưu trữ dữ liệu trong đường dẫn dữ liệu độc lập với người dùng. –
Application.CommonAppDataPath được bao gồm trong System.Windows.Forms.dll. Tôi có thực sự cần tham khảo Winforms từ Windows Service không? – qub1n
Nếu đây là một dịch vụ NET Tôi nghĩ rằng bạn có thể sử dụng IsolatedStorage
- 1. Tôi nên lưu trữ ảnh ở đâu? Hệ thống tệp hoặc cơ sở dữ liệu?
- 2. Ứng dụng web Java nên lưu trữ dữ liệu của nó ở đâu?
- 3. Hệ thống tập tin giả trên * nix
- 4. Tập tin .R ở đâu trên PC?
- 5. Ứng dụng đa nền tảng nên giữ dữ liệu của họ ở đâu?
- 6. Gettext không có hệ thống tập tin
- 7. Bạn lưu mật khẩu cơ sở dữ liệu ở đâu?
- 8. Tôi nên đặt AngularJS Nhà máy & Dịch vụ ở đâu?
- 9. Kho lưu trữ vs cơ sở dữ liệu vs hệ thống tập tin
- 10. Tôi có thể lưu trữ các tệp dữ liệu của ứng dụng ở đâu trong hệ thống tệp?
- 11. Dữ liệu đặt hàng Magento được lưu trữ ở đâu?
- 12. Nội dung web dựa trên hệ thống tập tin
- 13. truy vấn để sao lưu cơ sở dữ liệu tại một vị trí trong hệ thống tập tin
- 14. Cơ sở dữ liệu nhúng của H2 lưu trữ dữ liệu ở đâu?
- 15. nơi trong hệ thống tập tin được lưu trữ Silverlight Isolated giữ?
- 16. Facelets Lấy mẫu/tập tin từ một hệ thống tập tin bên ngoài hoặc cơ sở dữ liệu
- 17. Trên hệ thống/hệ thống tập tin nào là os.open() nguyên tử?
- 18. Bảng gọi hệ thống trong hạt nhân Linux ở đâu?
- 19. Dữ liệu trên CD Live không tồn tại được lưu trữ ở đâu?
- 20. Máy chủ phát triển ASP.NET lưu giữ nhật ký của nó ở đâu?
- 21. Làm thế nào để sử dụng tài sản giữ chỗ cho tập tin trên hệ thống tập tin
- 22. Dữ liệu 'chrome.storage.local' của tiện ích chrome được lưu ở đâu?
- 23. Chia sẻ hệ thống dữ liệu rộng
- 24. cơ sở dữ liệu phân cấp/cây cho các thư mục trong hệ thống tập tin
- 25. Chạy SQL Server Agent và Cơ sở dữ liệu làm dịch vụ mạng hoặc hệ thống
- 26. Android lưu trữ cài đặt hệ thống như mạng WiFi ở đâu?
- 27. Dịch vụ Web ASP.NET ở đâu trong .Net Framework 4.0?
- 28. const ngữ nghĩa để truy cập cơ sở dữ liệu hoặc hệ thống tập tin
- 29. WordPress lưu trữ siêu dữ liệu hình ảnh ở đâu?
- 30. Vị trí trung tâm dữ liệu Windows Azure ở đâu?
Mỗi dịch vụ được chạy với quyền của một số người dùng. Không nên lưu trữ dữ liệu trong applicationData của người dùng (tôi đoán bạn gọi nó là Application.UserAppDataPath)? Vấn đề với vị trí này là gì? –
Dịch vụ đang chạy dưới dạng LocalSystem. Tuy nhiên, tài khoản LocalSystem không có thư mục riêng trong "Documents and Settings"; trong các thử nghiệm của tôi, nó sử dụng thư mục LocalService nhưng, chúng tôi nhận được các báo cáo rằng dịch vụ đôi khi lưu trữ dữ liệu ở một nơi và sau đó tìm kiếm dữ liệu trong một vị trí khác. Trong registry có vẻ như đường dẫn AppData của LocalSystem là% USERPROFILE% \ Application Data để có vẻ như% USERPROFILE% không cho chúng ta một câu trả lời nhất quán. –